{"id":75545,"date":"2026-11-16T03:01:00","date_gmt":"2026-11-15T17:01:00","guid":{"rendered":"https:\/\/www.rjmprogramming.com.au\/ITblog\/?p=75545"},"modified":"2026-11-15T10:13:27","modified_gmt":"2026-11-15T00:13:27","slug":"exim-mail-server-on-almalinux-apache-php-dedicated-web-server-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/exim-mail-server-on-almalinux-apache-php-dedicated-web-server-tutorial\/","title":{"rendered":"Exim Mail Server on AlmaLinux Apache PHP Dedicated Web Server Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cmyk_rgb.html\" rel=\"noopener\"><img decoding=\"async\" style=\"float:left;border: 15px solid pink;\" alt=\"Exim Mail Server on AlmaLinux Apache PHP Dedicated Web Server Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cmyk_rgb_feedback_revisit.gif\" title=\"Exim Mail Server on AlmaLinux Apache PHP Dedicated Web Server Tutorial\"  \/><\/a><p class=\"wp-caption-text\">Exim Mail Server on AlmaLinux Apache PHP Dedicated Web Server Tutorial<\/p><\/div>\n<p>Back in 2020, when we published <a title='Colour Systems Inline HTML Email Collaboration Tutorial' href='#csihtmlect'>Colour Systems Inline HTML Email Collaboration Tutorial<\/a> the setup with the RJM Programming web server IP address teed up with the RJM Programming IP address (ie. to do with shared services) involved with mail to allow &#8230;<\/p>\n<p><code><br \/>\nthe sending of emails involving very simple Inline HTML to Gmail recipients<br \/>\n<\/code><\/p>\n<p> &#8230; seemed relatively easy.  Since then, for various reasons &#8230;<\/p>\n<ul>\n<li>future RJM Programming <a target=\"_blank\" title='VPS information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/Virtual_private_server' rel=\"noopener\">VPS<\/a> web server IP addresses became removed from the <i>RJM Programming IP address (ie. to do with shared services) involved with mail<\/i> moving on from shared servicing hosting to dedicated virtual server servicing hosting<\/li>\n<li><a target=\"_blank\" href='https:\/\/gmail.com' rel=\"noopener\">Gmail<\/a> started asking for <a target=\"_blank\" title='DMARC information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/DMARC' rel=\"noopener\">DMARC<\/a> (for sure) and (maybe) <a target=\"_blank\" title='SPF information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/Sender_Policy_Framework' rel=\"noopener\">SPF<\/a> and <a target=\"_blank\" title='DKIM  information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/DKIM' rel=\"noopener\">DKIM<\/a> relevant <a target=\"_blank\" title='Domain Name System information from Wikipedia, thanks' href='https:\/\/en.wikipedia.org\/wiki\/Domain_Name_System' rel=\"noopener\">DNS<\/a> records that teed up with the IP addresses and DNS names involved<\/li>\n<li>our calls to PHP <a target=\"_blank\" title='PHP mail function information from php.net' href='https:\/\/www.php.net\/manual\/en\/function.mail.php' rel=\"noopener\">mail()<\/a> were lacking a fifth parameter to legitimize the rearrangements our web hosters, <a target=\"_blank\" title='Crazy Domains' href='http:\/\/www.crazydomains.com.au' rel=\"noopener\">Crazy Domains<\/a>, was able to establish after seeing <a target=\"_blank\" title='Exim' href='https:\/\/www.exim.org\/' rel=\"noopener\">Exim<\/a> mail server logs ( in our case that being \/var\/log\/exim_mainlog ) of failures (we&#8217;d been bypassing to mailto: mail messages by monitoring Exim logs, in those intervening years <font size=1>(along with our burgeoning regard for <a target=\"_blank\" title='Hashtag information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/Hashtag' rel=\"noopener\">hashtag<\/a> <a target=\"_blank\" title='mailto information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/Mailto' rel=\"noopener\">mailto:<\/a> link communications)<\/font><\/li>\n<\/ul>\n<p> &#8230; we gave up on the possibility of sending such emails containing <i>very simple Inline HTML<\/i> until recently we enlisted the help of our great hosters, Crazy Domains.  Their expertise with the DNS involved in DMARC and SPF and DKIM records is beyond me, but we&#8217;re hoping the involvement of monitoring &#8230;<\/p>\n<p><code><br \/>\nExim mail server logs<br \/>\n<\/code><\/p>\n<p> &#8230; while DNS changes go through (sometimes over days) and testing the web applications from my end and tweaking the PHP mailing out web applications at my end, is a collaboration, where hopefully, finally, some of the concepts sink in a bit for yours truly.<\/p>\n<p>As such, you might want to retry <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cmyk_rgb.html\" rel=\"noopener\">CMYK to or from RGB to or from HSL Colour Systems<\/a> web application also shown below &#8230;<\/p>\n<p><iframe style=width:100%;height:800px; src=\"\/\/www.rjmprogramming.com.au\/HTMLCSS\/cmyk_rgb.html\"><\/iframe><\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=\"_blank\" href='\/\/www.rjmprogramming.com.au\/ITblog\/exim-mail-server-on-almalinux-apache-php-dedicated-web-server-tutorial\/' rel=\"noopener\">Exim Mail Server on AlmaLinux Apache PHP Dedicated Web Server Tutorial<\/a>.<\/p-->\n<hr>\n<p id='csihtmlect'>Previous relevant <a target=\"_blank\" title='Colour Systems Inline HTML Email Collaboration Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/colour-systems-inline-html-email-collaboration-tutorial\/' rel=\"noopener\">Colour Systems Inline HTML Email Collaboration Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cmyk_rgb.html\" rel=\"noopener\"><img decoding=\"async\" style=\"float:left;border: 15px solid pink;\" alt=\"Colour Systems Inline HTML Email Collaboration Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cmyk_rgb_feedback.jpg\" title=\"Colour Systems Inline HTML Email Collaboration Tutorial\"  \/><\/a><p class=\"wp-caption-text\">Colour Systems Inline HTML Email Collaboration Tutorial<\/p><\/div>\n<p>Yesterday&#8217;s <a title='Colour Systems Inline HTML Email Tutorial' href='#csihtmlet'>Colour Systems Inline HTML Email Tutorial<\/a> featured Inline HTML Email functionality, that we find very useful, but almost denuded of personalization.  We think adding personalization aspects to a web application should never be mandatory to its functionality, but on the flipside, if you want a web application with &#8220;collaboration&#8221; thoughts we figure for &#8230;<\/p>\n<ul>\n<li>the scenario that the rjmprogramming.com.au mail server serves as an &#8220;honest broker&#8221; between &#8230;<\/li>\n<li>an emailee (as we established yesterday) &#8230; and &#8230;<\/li>\n<li>an emailer (we allow the user to define (and so not have to bother the users again regarding email addresses), optionally, starting today) &#8230; teamed with &#8230;<\/li>\n<li>a comment or feedback textbox (new today), to add some personalization, into the <i>colour<\/i> discussion and collaboration and sharing experience <font size=1>(&#8230; what&#8217;s come over me!)<\/font><\/li>\n<\/ul>\n<p> &#8230; meaning, though, that collaboration can occur between collaborators through (straight at your face content) email.<\/p>\n<p>Today, also, we&#8217;ve added another HSL (Hue\/Saturation\/Lightness) Colour System, and would like to thank <a target=\"_blank\" title='Useful link, thanks' href='https:\/\/www.rapidtables.com\/convert\/color\/hsl-to-rgb.html' rel=\"noopener\">this useful link<\/a> regarding the formulae needed to make this happen.<\/p>\n<p>Try collaboration via <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cmyk_rgb.html--GETME\" title=\"cmyk_rgb.html\" rel=\"noopener\">the changed<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cmyk_rgb.html--GETME\" title=\"cmyk_rgb.html\" rel=\"noopener\">cmyk_rgb.html<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cmyk_rgb.html\" rel=\"noopener\">live run<\/a> link yourself, and with a <i>colourful<\/i> friend!<\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=\"_blank\" href='\/\/www.rjmprogramming.com.au\/ITblog\/colour-systems-inline-html-email-collaboration-tutorial\/' rel=\"noopener\">Colour Systems Inline HTML Email Collaboration Tutorial<\/a>.<\/p-->\n<hr>\n<p id='csihtmlet'>Previous relevant <a target=\"_blank\" title='Colour Systems Inline HTML Email Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/colour-systems-inline-html-email-tutorial\/' rel=\"noopener\">Colour Systems Inline HTML Email Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cmyk_rgb.html\" rel=\"noopener\"><img decoding=\"async\" style=\"float:left;border: 15px solid pink;\" alt=\"Colour Systems Inline HTML Email Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cmykrgb.jpg\" title=\"Colour Systems Inline HTML Email Tutorial\"  \/><\/a><p class=\"wp-caption-text\">Colour Systems Inline HTML Email Tutorial<\/p><\/div>\n<p>In undertaking the makeover for the Colour Systems web application of <a title='Colour Systems Primer Tutorial' href='#cspt'>Colour Systems Primer Tutorial<\/a> we were integrating Inline HTML Email functionality via <a target=\"_blank\" title='Ajax information from Wikipedia ... thanks' href='http:\/\/en.wikipedia.org\/wiki\/Ajax_%28programming%29' rel=\"noopener\">Ajax<\/a>\/<a target=\"_blank\" title='FormData object information' href='https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/FormData' rel=\"noopener\">FormData<\/a> techniques (entrenched as a favourite &#8220;midair&#8221; feeling email conduit approach) when we were surprised trying something that we did not expect to work.   We have intimated that as far as email clients go it is touch and go whether much HTML5 works nor CSS3 when you try to get something going, so when we tried integrating &#8230;<\/p>\n<ul>\n<li>inline HTML email &#8230; with &#8230;<\/li>\n<li>HTML input type=&#8221;color&#8221; as per &#8230;<br \/>\n<code><br \/>\n&lt;input onchange=\"findc(this.value);\" style='display:INLINE-BLOCK;' type=\"color\" name=\"cinput\" id=\"cinput\" value=\"#000000\"&gt;&lt;\/input&gt;<br \/>\n<\/code>\n<\/li>\n<\/ul>\n<p> &#8230; we were really expecting &#8220;tears before bedtime&#8221; rather than an approach using the HTML input type=&#8221;color&#8221; element above that really made it good at the emailee end, in particular, as we &#8230;<\/p>\n<ul>\n<li>have an emailer <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cmyk_rgb.html\" title=\"Click picture\" rel=\"noopener\">start the ball rolling<\/a> (with <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cmyk_rgb.html-GETME\" title=\"cmyk_rgb.html\" rel=\"noopener\">the changed<\/a> <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cmyk_rgb.html-GETME\" title=\"cmyk_rgb.html\" rel=\"noopener\">cmyk_rgb.html<\/a>) at this link &#8230; then &#8230;<\/li>\n<li>set up a colour of interest via any of the following approaches &#8230;\n<ol>\n<li>fill out Red, Green, Blue &#8230; 0 to 255 &#8230; RGB Colour System numbers<\/li>\n<li>fill out Cyan, Magenta, Yellow, Key &#8230; 0.0000 to 1.0000 &#8230; CMYK Colour System numbers<\/li>\n<li>click our new HTML input type=&#8221;color&#8221; element and follow your nose<\/li>\n<\/ol>\n<\/li>\n<li>and then, optionally, collaborate (or just share) with an emailee (textbox) they fill out and press the &#8220;Email to &#8230;&#8221; button &#8230; setting off &#8230;<\/li>\n<li>Ajax\/FormData functionality sends off the document.body.innerHTML (heavily amended) HTML data directed via our Inline HTML Email &#8220;emailhtml.php&#8221; (usual PHP) helper &#8230;<\/li>\n<li>email arrives for the emailee who sees a lot of what the emailer last saw &#8230; and &#8230;\n<ol>\n<li>we highly recommend clicking our new HTML input type=&#8221;color&#8221; element, then follow your nose <font size=2>(picking a colour <\/font>, <font size=1>not your &#8230; ?<\/font><font size=2>)<\/font> then &#8230; click RGB to CMYK button<\/li>\n<li>fill out Red, Green, Blue &#8230; 0 to 255 &#8230; RGB Colour System numbers &#8230; click RGB to CMYK button<\/li>\n<li>fill out Cyan, Magenta, Yellow, Key &#8230; 0.0000 to 1.0000 &#8230; CMYK Colour System numbers &#8230; click CMYK to RGB button<\/li>\n<\/ol>\n<p> &#8230; optionally adjusting the return email (as the original emailer&#8217;s email address, more than likely) &#8230; back out to &#8220;the net&#8221; with &#8230;\n<\/li>\n<li>the emailee&#8217;s web browser arrives at <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cmyk_rgb.html\" title=\"Click picture\" rel=\"noopener\">the same colour systems web application<\/a> ready to, optionally, send more collaboration or sharing back to the emailer, as required<\/li>\n<\/ul>\n<p>Colourful discussions can ensue!  And don&#8217;t we know, lots of people have opinions about <i>colour<\/i>, even its <i>spelling<\/i>!<\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=\"_blank\" href='\/\/www.rjmprogramming.com.au\/ITblog\/colour-systems-inline-html-email-tutorial\/' rel=\"noopener\">Colour Systems Inline HTML Email Tutorial<\/a>.<\/p-->\n<hr>\n<p id='cspt'>Previous relevant <a target=\"_blank\" title='Colour Systems Primer Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/colour-systems-primer-tutorial\/' rel=\"noopener\">Colour Systems Primer Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cmyk_rgb.html\" rel=\"noopener\"><img decoding=\"async\" style=\"float:left;border: 15px solid pink;\" alt=\"Colour Systems Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cmyk_rgb.jpg\" title=\"Colour Systems Primer Tutorial\"  \/><\/a><p class=\"wp-caption-text\">Colour Systems Primer Tutorial<\/p><\/div>\n<p>We want to talk, today, about <a target=\"_blank\" title='Colour space information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/Color_space' rel=\"noopener\">Colour (Space) Systems<\/a>.  There are, at least &#8230;<\/p>\n<ul>\n<li>additive colour systems &#8230; used in science &#8230; often used to define  web colours &#8230; red, green and blue are the primary colours<\/li>\n<li>subtractive colour systems &#8230; used by artists (and often the way we learn colours in early school) &#8230; often used with regard to printing &#8230; red, yellow and blue are the primary colours<\/li>\n<li>the CMYK colour system &#8230; used by printing industry &#8230; cyan, magenta, yellow and black are the primary colours<\/li>\n<\/ul>\n<p>You can read more about the comparisons and a description of these three at <a target=\"_blank\" title='Colour Systems' href='http:\/\/www.colormatters.com\/color-and-design\/color-systems-rgb-and-cmyk' rel=\"noopener\">Colour Systems &#8211; RGB and CYMK<\/a>.<\/p>\n<p>We&#8217;ve got a small HTML and Javascript conversion program we call <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cmyk_rgb.html_GETME\" rel=\"noopener\">cmyk_rgb.html<\/a> (and that you can use as a <a target=\"_blank\" href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/cmyk_rgb.html\" rel=\"noopener\">live run<\/a>) which you can use today to convert a given colour to and from RGB and CYMK colour systems.<\/p>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d18532' onclick='var dv=document.getElementById(\"d18532\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/colour\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d18532' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d49145' onclick='var dv=document.getElementById(\"d49145\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/email\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d49145' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d49153' onclick='var dv=document.getElementById(\"d49153\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/collaboration\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d49153' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d49153' onclick='var dv=document.getElementById(\"d49153\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/collaboration\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d49153' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Back in 2020, when we published Colour Systems Inline HTML Email Collaboration Tutorial the setup with the RJM Programming web server IP address teed up with the RJM Programming IP address (ie. to do with shared services) involved with mail &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/exim-mail-server-on-almalinux-apache-php-dedicated-web-server-tutorial\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,25,29,33,37],"tags":[4855,85,1604,1709,249,2195,5324,4110,5812,347,380,394,2267,2751,503,557,576,5814,629,716,738,2240,739,1817,2752,809,837,932,997,4453,2407,1114,5813,3125,4111,1319,1393,1748,4221,1408,1411],"class_list":["post-75545","post","type-post","status-publish","format-standard","hentry","category-elearning","category-networking","category-operating-system","category-software","category-tutorials","tag-almalinux","tag-apache","tag-collaboration","tag-communication","tag-configuration","tag-crazy-domains","tag-dedicated-web-server","tag-dkim","tag-dmarc","tag-dns","tag-email","tag-error-log","tag-error-message","tag-exim","tag-gmail","tag-hashtag","tag-html","tag-inline-html","tag-ip-address","tag-log","tag-mail","tag-mail-server","tag-mailto","tag-message","tag-monitor","tag-monitoring","tag-networking-2","tag-php","tag-programming","tag-recipient","tag-record","tag-security","tag-shared-web-server","tag-spam","tag-spf","tag-tutorial","tag-vps","tag-web-host","tag-web-hoster","tag-web-hosting","tag-web-server"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/75545"}],"collection":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/comments?post=75545"}],"version-history":[{"count":11,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/75545\/revisions"}],"predecessor-version":[{"id":75559,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/75545\/revisions\/75559"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=75545"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=75545"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=75545"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}