{"id":26001,"date":"2016-04-06T14:08:42","date_gmt":"2016-04-06T12:08:42","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=26001"},"modified":"2019-02-01T15:11:08","modified_gmt":"2019-02-01T13:11:08","slug":"sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/06\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\/","title":{"rendered":"SugarCRM, RoundCube and Request Tracker integration on a single domain"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p>In my years of working as a system administrator I&#8217;ve done some pretty complex setups and integration solutions, but I don&#8217;t think I&#8217;ve done anything as twisted as this one recently. &nbsp;The setup is part of the large and complex client project, built on their infrastructure, with quite a few requirements and a whole array of limitations. &nbsp;Several systems were integrated together, but in this particular post I&#8217;m focusing primarily on the <a href=\"https:\/\/www.sugarcrm.com\/\">SugarCRM<\/a>, <a href=\"https:\/\/roundcube.net\/\">RoundCube<\/a> and <a href=\"https:\/\/www.bestpractical.com\/rt-and-rtir\">Request Tracker<\/a>. &nbsp;Also, I am not going to cover the integration to full extent &#8211; just the email related parts.<\/p>\n<p><!--more--><\/p>\n<p>Quick overview of the requirements to set the scene:<\/p>\n<ol>\n<li>SugarCRM web application used by company with many employees and multiple offices world-wide. &nbsp;Currently, with access limited by IP address. Later, maybe, with public access.<\/li>\n<li><a href=\"https:\/\/apps.google.ie\/intx\/en_ie\/\">Gmail for Work<\/a> used with a single primary domain and a few alias domains. &nbsp;Let&#8217;s say, <em>example.com<\/em> as a primary domain and other.com as an alias. &nbsp;<em>user@example.com<\/em> is the same mailbox as <em>user@other.com<\/em> .<\/li>\n<li>Company employees should not know their Gmail account credentials.<\/li>\n<li>Individual employee mailboxes and group mailboxes (like <em>support@example.com<\/em>) should operate on the same domain &#8211; no sub-domains or additional domains allowed.<\/li>\n<li>Full featured webmail client (folders, templates, signatures, filters, auto-replies, etc) should be available to all employees within the SugarCRM interface.<\/li>\n<li>Single sign-on between SugarCRM and webmail client, using SugarCRM user details. &nbsp;So whoever is logged into the SugarCRM can access webmail without any additional authentication.<\/li>\n<li>All incoming and outgoing emails to\/from individual employee mailboxes should be imported into the SugarCRM database and linked with related client accounts, so that whoever has the access to see client account in the SugarCRM, can also see the sent and received email communications with this client.<\/li>\n<li>The exception to the above should be managerial mailboxes, which should be excluded from such import.<\/li>\n<li>A full-featured ticketing\/suport system for handling support requests and certain types of workflows\/communications should be provided.<\/li>\n<li>All incoming emails to group mailboxes (such as support@example.com, sales@example.com, etc) should create a new ticket in the ticketing\/support system, also leaving a copy of the message in the Gmail&#8217;s mailbox.<\/li>\n<li>Ticketing\/support system&nbsp;should have single sign-on integration with SugarCRM, using SugarCRM user details. &nbsp;So whoever is logged into the SugarCRM can access appropriate tickets inside the ticketing\/support system.<\/li>\n<li>All client-related tickets (based on the primary email address of the client), should be visible inside the SugarCRM to whoever has access to see the client account details.<\/li>\n<li>Ticketing\/support system&nbsp;should send email responses from appropriate addresses on the @example.com domain, both to external users (&#8220;Your request has been received&#8221;, etc), as well as internal users (example: employee@example.com &#8211; &#8220;You have been assigned a new ticket&#8221;).<\/li>\n<li>All systems can be hosted on the same servers, but they cannot expose more than one application to the outside world. &nbsp;So, for example, choose either web (ports HTTP\/80 or HTTPS\/443) or email (SMTP\/25).<\/li>\n<li>Additional servers can be provided to expose applications to the outside world, but they will have limited communications between them &#8211; firewalls, different networks, etc.<\/li>\n<\/ol>\n<p>The above are by no means all the requirements, just the major ones.<\/p>\n<p>Now, a little bit on why there were these three particular systems.<\/p>\n<p>SugarCRM was the primary part of the project. &nbsp;If it could solve all the functionality needs, it could have been used on its own, without any additional systems. &nbsp;By the way, SugarCRM in question is the self-hosted <strong>Community Edition version 6.5.20<\/strong>, not professional, enterprise, or cloud variation.<\/p>\n<p>SugarCRM provides both the built-in email client and support\/ticketing system, among other things. &nbsp;However the functionality of both modules is very limited and insufficient for the requirements of the project.<\/p>\n<p>Gmail for Work provides an excellent webmail application. &nbsp;There is even a way to integrate it with external systems for single sign-on, using the <a href=\"https:\/\/developers.google.com\/google-apps\/sso\/saml_reference_implementation\">SAML SSO Service<\/a>. &nbsp;Here&#8217;s a handy illustration from the page:<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/04\/saml_workflow_vertical.gif?ssl=1\" rel=\"attachment wp-att-26002\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"26002\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/06\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\/saml_workflow_vertical\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/04\/saml_workflow_vertical.gif?fit=661%2C620&amp;ssl=1\" data-orig-size=\"661,620\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"SAML workflow\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/04\/saml_workflow_vertical.gif?fit=660%2C619&amp;ssl=1\" class=\"aligncenter size-medium wp-image-26002\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/04\/saml_workflow_vertical-500x469.gif?resize=500%2C469&#038;ssl=1\" alt=\"SAML workflow\" width=\"500\" height=\"469\"><\/a><\/p>\n<p>It wasn&#8217;t clear how much time and effort would be needed to so however. &nbsp;And there was a limitation of embedding Gmail into the SugarCRM interface. &nbsp;To the best of my knowledge, this is not possible with IFRAME tag (<a href=\"http:\/\/stackoverflow.com\/questions\/3325208\/how-can-i-iframe-gmail\">one<\/a>, <a href=\"http:\/\/stackoverflow.com\/questions\/22124060\/why-cant-iframe-work-with-google-gmail-facebook\">two<\/a>). &nbsp;The closest option is to build a custom user interface application using <a href=\"https:\/\/developers.google.com\/gmail\/api\/\">Gmail API<\/a>. &nbsp;Which is an undertaking of its own.<\/p>\n<p>So, with Gmail being unavailable and SugarCRM being not good enough, a third-party solution was necessary. &nbsp;RoundCube is a free and Open Source application, written in PHP (same as SugarCRM), providing an excellent array of features, extendable with plugins, and with which we had previous positive experiences.<\/p>\n<p>Now for the ticketing system, the reasons were very similar. &nbsp;SugarCRM wasn&#8217;t good enough and we needed something else. &nbsp;There are plenty of alternatives to choose from. &nbsp;However, in-depth expertise with Request Tracker was the deciding factor. &nbsp;Turned out be more important than the technology stack &#8211; Request Tracker is written in Perl, not PHP. &nbsp;However it is too a free, Open Source solution, with lots of features and extension functionality.<\/p>\n<p>The single sign-on functionality was implemented rather easy. &nbsp;I&#8217;m not going to cover it in this post, but you might want to have a look at some recent related posts talking about this functionality and some of the related issues:<\/p>\n<ul>\n<li><a href=\"https:\/\/mamchenkov.net\/wordpress\/2016\/03\/20\/single-sign-on-sugarcrm-roundcube-multiple-php-sessions\/\">Single Sign-On with SugarCRM and RoundCube Using Multiple PHP Sessions<\/a><\/li>\n<li><a href=\"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/18\/single-sign-on-between-sugarcrm-and-request-tracker\/\">Single Sign-On Between SugarCRM and Request Tracker<\/a><\/li>\n<li><a href=\"https:\/\/mamchenkov.net\/wordpress\/2015\/07\/28\/php-session-encoding\/\">PHP session encoding<\/a><\/li>\n<li><a href=\"https:\/\/mamchenkov.net\/wordpress\/2015\/10\/02\/flexible-feature-control-at-instagram\/\">Flexible Feature Control at Instagram<\/a><\/li>\n<li><a href=\"https:\/\/mamchenkov.net\/wordpress\/2015\/06\/24\/rt-initialdata-and-perls-nested-map\/\">RT initialdata and Perl\u2019s nested map<\/a><\/li>\n<li><a href=\"https:\/\/mamchenkov.net\/wordpress\/2015\/08\/19\/custom-single-sign-on-with-nginx-and-auth-request-module\/\">Custom Single Sign-On with Nginx and Auth Request Module<\/a><\/li>\n<\/ul>\n<p>All three systems &#8211; SugarCRM, RoundCube, and Request Tracker were hosted on the same Linux server. &nbsp;It was decided that only the web application (HTTP and HTTPS ports) will be exposed from this server.<\/p>\n<p>So, the MX record for the example.com domain points to the Gmail servers. &nbsp;This is fine and it makes all emails arrive to all the mailboxes.<\/p>\n<p>RoundCube is used as the web interface by the users to work with individual mailboxes (via IMAP protocol). &nbsp;A custom plugin has been developed for the RoundCube (using the <a href=\"https:\/\/github.com\/roundcube\/roundcubemail\/wiki\/Plugin-Hooks#message_sent\">message_sent hook<\/a>), so that whenever a user composes and sends an email, a copy of it is passed to the SugarCRM via the API. &nbsp;SugarCRM then decides whether or not the message needs importing, and if it needs, then does so. &nbsp;This is the easy part. ;)<\/p>\n<p>Now, we need to get a copy of all the incoming messages, so that we could either import them into the SugarCRM or pass them to Request Tracker for ticketing and support needs. &nbsp;Gladly, Google for Work supports quite flexible delivery routing. &nbsp;Here are <a href=\"https:\/\/support.google.com\/a\/answer\/96855?hl=en\">how to configure dual delivery<\/a> and some <a href=\"https:\/\/support.google.com\/a\/answer\/2685650\">best practices<\/a>.<\/p>\n<p>An additional Linux server has been setup with <a href=\"http:\/\/www.exim.org\/\">Exim<\/a> as the mail transfer\/delivery agent. &nbsp;Port 25 (SMTP) was exposed from this machine and configured to accept all email for @example.com from Google servers. &nbsp;Dual delivery configuration on Google was setup to send a copy of each message to this new server.<\/p>\n<p>Unfortunately, this machine was not allowed to connect directly to the server with web applications. &nbsp;Only the reverse was allowed &#8211; the web server could have some limited access to this mail server.<\/p>\n<p>Mkay, no problem.<\/p>\n<p><a href=\"http:\/\/www.dovecot.org\/\">Dovecot<\/a> was installed on the mail server to provide POP\/IMAP functionality, with all the relevant ports being exposed only to the web server IP address. &nbsp;Exim was configured on the mail server to check against a list of known group email addresses (support@, sales@, etc) and if matched, then delivery to the local mailbox for Request Tracker to pick up later. &nbsp;If incoming email is not for the group mailbox, then it is delivered to another mailbox, for the SugarCRM to pick up. &nbsp;This is still not too difficult, and if you don&#8217;t know how to do this, Google search for Exim aliases and catch all address configurations.<\/p>\n<p>We are done with this mail server for now. &nbsp;Let&#8217;s move on to the web server, which is hungry for those emails.<\/p>\n<p>SugarCRM part is the easiest here. &nbsp;The application already provides the mail checker functionality out of the box. &nbsp;So we configure it to connect to the mail server via IMAP, authenticate itself and fetch all emails from that dedicated mailbox of the catch all setup. &nbsp;Done. &nbsp;Check.<\/p>\n<p>Request Tracker however ships without the mail check functionality. &nbsp;Probably because most people using it expose the local SMTP port to the world and then <a href=\"http:\/\/www.exim.org\/exim-html-3.20\/doc\/html\/spec_23.html#SEC634\">use aliases to pipe message<\/a> to the Request Tracker&#8217;s <a href=\"https:\/\/docs.bestpractical.com\/rt\/4.4.0\/rt-mailgate.html\">rt-mailgate<\/a> script.<\/p>\n<p>Well, no problem. &nbsp;<a href=\"http:\/\/www.fetchmail.info\/\">Fetchmail<\/a> is famous for its mail fetching super powers. &nbsp;Installing and setting it up takes just a few minutes. &nbsp;Here&#8217;s a <a href=\"http:\/\/requesttracker.wikia.com\/wiki\/Fetchmail\">configuration to get you started<\/a>.<\/p>\n<p>Here&#8217;s where things get interesting.<\/p>\n<p>We have a number of group addresses and we need to know which email address should go to which queue in Request Tracker. &nbsp;This information is also needed on two different servers &#8211; the mail server that gets all messages and on the web server to deliver the messages to the correct queue.<\/p>\n<p>Obviously, we can update both servers from a single source (Hello, <a href=\"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/01\/checking-out-ansible-sorry-puppet\/\">Ansible<\/a>. &nbsp;How are you today?). &nbsp;We can either have multiple mailboxes setup on the mail server &#8211; one for each queue &#8211; and then use different credentials to deliver messages with fetchmail, or we can use the local Exim on the web server and update its aliases whenever needed.<\/p>\n<p>I didn&#8217;t like the approach of creating more and more system users on the mail server. &nbsp;It&#8217;s easy to automate, but it just doesn&#8217;t seem elegant. &nbsp;So I opted for the single mailbox for RT on the mail server and local SMTP delivery on the web server.<\/p>\n<p>Fetchmail provides the <em>&#8211;smtphost<\/em> option of course:<\/p>\n<pre class=\"brush: plain; light: true; title: ; notranslate\" title=\"\">\n-S &amp;lt;hosts&amp;gt; | --smtphost &amp;lt;hosts&amp;gt;\n(Keyword: smtp&#x5B;host])\nSpecify a hunt list of hosts to forward mail to (one\nor more hostnames, comma-separated). Hosts are tried\nin list order; the first one that is up becomes the\nforwarding target for the current run. If this option\nis not specified, 'localhost' is used as the default.\nEach hostname may have a port number following the\nhost name. The port number is separated from the host\nname by a slash; the default port is &quot;smtp&quot;. If you\nspecify an absolute path name (beginning with a \/), it\nwill be interpreted as the name of a UNIX socket\naccepting LMTP connections (such as is supported by\nthe Cyrus IMAP daemon) Example:\n\n--smtphost server1,server2\/2525,server3,\/var\/imap\/socket\/lmtp\n<\/pre>\n<p>But this introduces a new problem. &nbsp;Now all messages appear to be from the local system user on the web server, not from the original addresses.<\/p>\n<p>After a bit of poking around fetchmail manual, the following bit was discovered:<\/p>\n<pre class=\"brush: plain; light: true; title: ; notranslate\" title=\"\">\nDo NOT use an MDA invocation that dispatches on the\ncontents of To\/Cc\/Bcc, like &quot;sendmail -i -t&quot; or\n&quot;qmail-inject&quot;, it will create mail loops and bring\nthe just wrath of many postmasters down upon your\nhead. This is one of the most frequent configuration\nerrors!\n<\/pre>\n<p>Oh, really? &nbsp;But that&#8217;s exactly what I need here, so off I go. &nbsp;Back to the MDA option with &#8220;<em>sendmail -i -t<\/em>&#8221; as the delivery agent.<\/p>\n<p>Now we have messages delivered to the local Exim on the web server, with the original message headers. &nbsp;Now we configure <em>\/etc\/aliases<\/em> with group addresses, each piped to the appropriate Request Tracker queue, as per usual.<\/p>\n<p>Test. &nbsp;Oops. &nbsp;Doesn&#8217;t work. &nbsp;Check the configurations again. &nbsp;And a bit more carefully again. Ah, aliases delivery is used by default only for the local domains. &nbsp;No problem &#8211; we add example.com to local domains, restart Exim service and test again.<\/p>\n<p>Beautiful! &nbsp;Group emails are coming in with correct headers and are correctly piped to the appropriate queues. &nbsp;Tickets are created and the world looks beautiful. &nbsp;For about 30 seconds &#8230;<\/p>\n<p>Now we have a new problem to solve. &nbsp;Request Tracker generates automated responses, which should go to the company employees, who&#8217;s emails are on the same example.com domain. &nbsp;Request Tracker passes these messages to the local SMTP server, where Exim thinks that these are for local delivery, and then &#8230; <strong>***BOOM***<\/strong> Nothing good comes out of it.<\/p>\n<p>Here&#8217;s where I have to pause for a second and praise Exim as a beautiful piece of software. &nbsp;I&#8217;ve used for almost two decades now and every time it saves me lots of hair pulling. &nbsp;There are multiple ways to fix the problem. &nbsp;One is, for example, to do the following:<\/p>\n<ol>\n<li>Remove <em>example.com<\/em> from local domains.<\/li>\n<li>Swap the order of <em>system_aliases<\/em> and <em>dnslookup<\/em> routers in <em>\/etc\/exim\/exim.conf<\/em><\/li>\n<li>Add &#8220;<em>domains = example.com : other.com<\/em>&#8221; to <em>system_aliases<\/em> router.<\/li>\n<li>Comment out &#8220;<em>domains = ! +local_domains<\/em>&#8221; in the <em>dnslookup<\/em> router.<\/li>\n<li>Restart Exim service<\/li>\n<\/ol>\n<p>So now, when Exim gets the message, it will first try to delivery it using the <em>\/etc\/aliases<\/em> file, provided that the message is for the example.com or other.com domains. &nbsp;If the message is not for these domains, or if it fails to find the appropriate alias, it will pass the message to the dnslookup router, which will attempt a remote delivery, sending the message off to the Internet.<\/p>\n<p>This will make sure that both scenarios are covered &#8211; incoming messages from the outside are delivered to the Request Tracker, and outgoing messages from the Request Tracker are sent out.<\/p>\n<p>Note, however, that I am focusing here purely on the routing and delivery parts of the equation. &nbsp;You should test and tweak the configuration further to prevent any unwanted relaying and SPAM attacks.<\/p>\n<p>With the above setup, we managed to solve the complex requirements for the project and still keep the sanity. &nbsp;If you know of any simpler or more elegant ways to do the above, please please please let me know. &nbsp;I&#8217;ll buy you a beer. &nbsp;Or a few.<\/p>\n<p>P.S.: For those of you still working with the SugarCRM, you might find some of my <a href=\"https:\/\/mamchenkov.net\/wordpress\/2008\/07\/15\/migrating-ms-dynamics-crm-to-sugarcrm\/\">older<\/a> <a href=\"https:\/\/mamchenkov.net\/wordpress\/2008\/08\/19\/sugarcrm-deployment-efforts\/\">posts<\/a> (from about 8 years ago!) still useful and relevant.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>In my years of working as a system administrator I&#8217;ve done some pretty complex setups and integration solutions, but I don&#8217;t think I&#8217;ve done anything as twisted as this one recently. &nbsp;The setup is part of the large and complex client project, built on their infrastructure, with quite a few requirements and a whole array &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/06\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">SugarCRM, RoundCube and Request Tracker integration on a single domain<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"SugarCRM, RoundCube and Request Tracker integration on a single domain #SugarCRM #RT #RoundCube #email #SysAdmin","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false,"_links_to":"","_links_to_target":""},"categories":[1,6,133,62,1334],"tags":[72,1264,3318,3150,3411,3474,1538],"keyring_services":[],"class_list":["post-26001","post","type-post","status-publish","format-standard","hentry","category-general","category-linux","category-sysadmin","category-technology","category-web-work","tag-email","tag-integration","tag-qobo","tag-request-tracker","tag-roundcube","tag-single-sign-on","tag-sugarcrm"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"In my years of working as a system administrator I&#039;ve done some pretty complex setups and integration solutions, but I don&#039;t think I&#039;ve done anything as twisted as this one recently. The setup is part of the large and complex client project, built on their infrastructure, with quite a few requirements and a whole array\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Leonid Mamchenkov\"\/>\n\t<meta name=\"google-site-verification\" content=\"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/06\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Leonid Mamchenkov - Life, universe, and everything else\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"SugarCRM, RoundCube and Request Tracker integration on a single domain - Leonid Mamchenkov\" \/>\n\t\t<meta property=\"og:description\" content=\"In my years of working as a system administrator I&#039;ve done some pretty complex setups and integration solutions, but I don&#039;t think I&#039;ve done anything as twisted as this one recently. The setup is part of the large and complex client project, built on their infrastructure, with quite a few requirements and a whole array\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/06\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2016-04-06T12:08:42+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-02-01T13:11:08+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/MamchenkovBlog\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:title\" content=\"SugarCRM, RoundCube and Request Tracker integration on a single domain - Leonid Mamchenkov\" \/>\n\t\t<meta name=\"twitter:description\" content=\"In my years of working as a system administrator I&#039;ve done some pretty complex setups and integration solutions, but I don&#039;t think I&#039;ve done anything as twisted as this one recently. The setup is part of the large and complex client project, built on their infrastructure, with quite a few requirements and a whole array\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/04\\\/06\\\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\\\/#blogposting\",\"name\":\"SugarCRM, RoundCube and Request Tracker integration on a single domain - Leonid Mamchenkov\",\"headline\":\"SugarCRM, RoundCube and Request Tracker integration on a single domain\",\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/wp-content\\\/uploads\\\/2016\\\/04\\\/saml_workflow_vertical-500x469.gif\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/04\\\/06\\\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\\\/#articleImage\"},\"datePublished\":\"2016-04-06T14:08:42+02:00\",\"dateModified\":\"2019-02-01T15:11:08+02:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/04\\\/06\\\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/04\\\/06\\\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\\\/#webpage\"},\"articleSection\":\"All, Linux, Sysadmin, Technology, Web work, email, integration, Qobo, Request Tracker, RoundCube, single sign-on, SugarCRM\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/04\\\/06\\\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"position\":2,\"name\":\"Technology\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/linux\\\/#listItem\",\"name\":\"Linux\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/linux\\\/#listItem\",\"position\":3,\"name\":\"Linux\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/linux\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/04\\\/06\\\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\\\/#listItem\",\"name\":\"SugarCRM, RoundCube and Request Tracker integration on a single domain\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/04\\\/06\\\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\\\/#listItem\",\"position\":4,\"name\":\"SugarCRM, RoundCube and Request Tracker integration on a single domain\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/linux\\\/#listItem\",\"name\":\"Linux\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/04\\\/06\\\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/04\\\/06\\\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/04\\\/06\\\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\\\/#webpage\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/04\\\/06\\\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\\\/\",\"name\":\"SugarCRM, RoundCube and Request Tracker integration on a single domain - Leonid Mamchenkov\",\"description\":\"In my years of working as a system administrator I've done some pretty complex setups and integration solutions, but I don't think I've done anything as twisted as this one recently. The setup is part of the large and complex client project, built on their infrastructure, with quite a few requirements and a whole array\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/04\\\/06\\\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"datePublished\":\"2016-04-06T14:08:42+02:00\",\"dateModified\":\"2019-02-01T15:11:08+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/\",\"name\":\"Blog of Leonid Mamchenkov\",\"description\":\"Life, universe, and everything else\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"SugarCRM, RoundCube and Request Tracker integration on a single domain - Leonid Mamchenkov","description":"In my years of working as a system administrator I've done some pretty complex setups and integration solutions, but I don't think I've done anything as twisted as this one recently. The setup is part of the large and complex client project, built on their infrastructure, with quite a few requirements and a whole array","canonical_url":"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/06\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/06\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\/#blogposting","name":"SugarCRM, RoundCube and Request Tracker integration on a single domain - Leonid Mamchenkov","headline":"SugarCRM, RoundCube and Request Tracker integration on a single domain","author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"},"image":{"@type":"ImageObject","url":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/04\/saml_workflow_vertical-500x469.gif","@id":"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/06\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\/#articleImage"},"datePublished":"2016-04-06T14:08:42+02:00","dateModified":"2019-02-01T15:11:08+02:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/06\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\/#webpage"},"isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/06\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\/#webpage"},"articleSection":"All, Linux, Sysadmin, Technology, Web work, email, integration, Qobo, Request Tracker, RoundCube, single sign-on, SugarCRM"},{"@type":"BreadcrumbList","@id":"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/06\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","position":1,"name":"Home","item":"https:\/\/mamchenkov.net\/wordpress","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","position":2,"name":"Technology","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/linux\/#listItem","name":"Linux"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/linux\/#listItem","position":3,"name":"Linux","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/linux\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/06\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\/#listItem","name":"SugarCRM, RoundCube and Request Tracker integration on a single domain"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/06\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\/#listItem","position":4,"name":"SugarCRM, RoundCube and Request Tracker integration on a single domain","previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/linux\/#listItem","name":"Linux"}}]},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/#person","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/06\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author","url":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/06\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"WebPage","@id":"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/06\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\/#webpage","url":"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/06\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\/","name":"SugarCRM, RoundCube and Request Tracker integration on a single domain - Leonid Mamchenkov","description":"In my years of working as a system administrator I've done some pretty complex setups and integration solutions, but I don't think I've done anything as twisted as this one recently. The setup is part of the large and complex client project, built on their infrastructure, with quite a few requirements and a whole array","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#website"},"breadcrumb":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/06\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\/#breadcrumblist"},"author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"creator":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"datePublished":"2016-04-06T14:08:42+02:00","dateModified":"2019-02-01T15:11:08+02:00"},{"@type":"WebSite","@id":"https:\/\/mamchenkov.net\/wordpress\/#website","url":"https:\/\/mamchenkov.net\/wordpress\/","name":"Blog of Leonid Mamchenkov","description":"Life, universe, and everything else","inLanguage":"en-US","publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"}}]},"og:locale":"en_US","og:site_name":"Leonid Mamchenkov - Life, universe, and everything else","og:type":"article","og:title":"SugarCRM, RoundCube and Request Tracker integration on a single domain - Leonid Mamchenkov","og:description":"In my years of working as a system administrator I've done some pretty complex setups and integration solutions, but I don't think I've done anything as twisted as this one recently. The setup is part of the large and complex client project, built on their infrastructure, with quite a few requirements and a whole array","og:url":"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/06\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\/","og:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:secure_url":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:width":1024,"og:image:height":1024,"article:published_time":"2016-04-06T12:08:42+00:00","article:modified_time":"2019-02-01T13:11:08+00:00","article:publisher":"https:\/\/www.facebook.com\/MamchenkovBlog","twitter:card":"summary_large_image","twitter:site":"@mamchenkov","twitter:title":"SugarCRM, RoundCube and Request Tracker integration on a single domain - Leonid Mamchenkov","twitter:description":"In my years of working as a system administrator I've done some pretty complex setups and integration solutions, but I don't think I've done anything as twisted as this one recently. The setup is part of the large and complex client project, built on their infrastructure, with quite a few requirements and a whole array","twitter:creator":"@mamchenkov","twitter:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg"},"aioseo_meta_data":{"post_id":"26001","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"BlogPosting","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2023-07-20 00:22:49","updated":"2026-01-15 12:06:44","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/\" title=\"Technology\">Technology<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/linux\/\" title=\"Linux\">Linux<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tSugarCRM, RoundCube and Request Tracker integration on a single domain\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/mamchenkov.net\/wordpress"},{"label":"Technology","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/"},{"label":"Linux","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/linux\/"},{"label":"SugarCRM, RoundCube and Request Tracker integration on a single domain","link":"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/06\/sugarcrm-roundcube-and-request-tracker-integration-on-a-single-domain\/"}],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":25961,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/03\/20\/single-sign-on-sugarcrm-roundcube-multiple-php-sessions\/","url_meta":{"origin":26001,"position":0},"title":"Single Sign-On with SugarCRM and RoundCube Using Multiple PHP Sessions","author":"Leonid Mamchenkov","date":"March 20, 2016","format":false,"excerpt":"I am currently involved in an interesting integration project at work. \u00a0As part of it, we need to create a single sign-on process between\u00a0SugarCRM (version 6.5.20) and RoundCube (version 1.1.4) webmail application. \u00a0RoundCube webmail is being displayed within the iframe inside the SugarCRM user interface, so it would help if\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26031,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/18\/single-sign-on-between-sugarcrm-and-request-tracker\/","url_meta":{"origin":26001,"position":1},"title":"Single Sign-On Between SugarCRM and Request Tracker","author":"Leonid Mamchenkov","date":"April 18, 2016","format":false,"excerpt":"As mentioned\u00a0before,\u00a0over the last few month I've been involved in quite a few integration projects, using mostly SugarCRM and Request Tracker. \u00a0One of the interesting challenges was the Single Sign-On (SSO) between the two. The interesting bit comes from these facts: Different technologies: SugarCRM is written in PHP, while Request\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":11210,"url":"https:\/\/mamchenkov.net\/wordpress\/2008\/05\/29\/toolbox-wordpress-cakephp-sugarcrm-rt\/","url_meta":{"origin":26001,"position":2},"title":"Toolbox : WordPress, CakePHP, SugarCRM, RT","author":"Leonid Mamchenkov","date":"May 29, 2008","format":false,"excerpt":"Over the last couple of years I've been working a lot with these four applications - WordPress, CakePHP, SugarCRM, and RT.\u00a0 Each of these is beautiful in its own way.\u00a0 Each of these tools is an Open Source Software. Each of these tools has a large community. Each of these\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26232,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/07\/13\/sugarcrm-cache-directory-it-is-not-a-cache-directory\/","url_meta":{"origin":26001,"position":3},"title":"SugarCRM cache directory \u2013 it is NOT a cache directory!","author":"Leonid Mamchenkov","date":"July 13, 2016","format":false,"excerpt":"Here is a useful reminder from a few years back - \"SugarCRM cache directory \u2013 it is NOT a cache directory!\". \u00a0 Unlike most modern day web applications, which use cache\/ folder for temporary files, which are safe to delete, SugarCRM keeps a bunch of stuff in there, which, if\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":8827,"url":"https:\/\/mamchenkov.net\/wordpress\/2005\/04\/14\/managing-customer-relations-with-open-source\/","url_meta":{"origin":26001,"position":4},"title":"Managing customer relations with open source","author":"Leonid Mamchenkov","date":"April 14, 2005","format":false,"excerpt":"If you are looking for CRM software, make sure you try SugarCRM. It is professionally done piece of software which is available both as a commercial option and free software. Free version has practically all the functionality of the commercial one. Commerical version features more reports and statistics, interface translated\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":11326,"url":"https:\/\/mamchenkov.net\/wordpress\/2008\/08\/03\/innodb-is-better-for-sugarcrm\/","url_meta":{"origin":26001,"position":5},"title":"InnoDB is better for SugarCRM","author":"Leonid Mamchenkov","date":"August 3, 2008","format":false,"excerpt":"After SugarCRM was deployed, we were experiencing some lock ups.\u00a0 Not frequent or dangerous, but annoying.\u00a0 About once a week or every ten days or so, SugarCRM would lock up and won't answer any queries at all.\u00a0 Not even the login was possible.\u00a0 A brief investigation showed that somehow it\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/26001","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=26001"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/26001\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=26001"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=26001"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=26001"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=26001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}