CINXE.COM
Exim4ATTUverse - Debian Wiki
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="shortcut icon" href="/htdocs/favicon.ico"> <script type="text/javascript" src="/htdocs/bugstatus.js"></script> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <meta name="robots" content="noindex,nofollow"> <title>Exim4ATTUverse - Debian Wiki</title> <script type="text/javascript" src="/htdocs/common/js/common.js"></script> <script type="text/javascript"> <!-- var search_hint = "Search"; //--> </script> <link rel="stylesheet" type="text/css" charset="utf-8" media="all" href="/htdocs/debwiki/css/common.css"> <link rel="stylesheet" type="text/css" charset="utf-8" media="screen" href="/htdocs/debwiki/css/screen.css"> <link rel="stylesheet" type="text/css" charset="utf-8" media="print" href="/htdocs/debwiki/css/print.css"> <link rel="stylesheet" type="text/css" charset="utf-8" media="projection" href="/htdocs/debwiki/css/projection.css"> <link rel="stylesheet" type="text/css" charset="utf-8" media="all" href="/htdocs/debian-wiki-1.0.css"> <!-- css only for MS IE6/IE7 browsers --> <!--[if lt IE 8]> <link rel="stylesheet" type="text/css" charset="utf-8" media="all" href="/htdocs/debwiki/css/msie.css"> <![endif]--> <link rel="alternate" title="Debian Wiki: Exim4ATTUverse" href="/Exim4ATTUverse?diffs=1&show_att=1&action=rss_rc&unique=0&page=Exim4ATTUverse&ddiffs=1" type="application/rss+xml"> <link rel="Start" href="/FrontPage"> <link rel="Alternate" title="Wiki Markup" href="/Exim4ATTUverse?action=raw"> <link rel="Alternate" media="print" title="Print View" href="/Exim4ATTUverse?action=print"> <link rel="Search" href="/FindPage"> <link rel="Index" href="/TitleIndex"> <link rel="Glossary" href="/WordIndex"> <link rel="Help" href="/HelpOnFormatting"> </head> <body lang="en" dir="ltr"> <div id="logo"><a href="https://www.debian.org" title="Debian Homepage"><img src="https://www.debian.org/Pics/openlogo-50.png" alt="Debian" width="50" height="61"></a></div> <div id="header"> <div id="wikisection"> <p class="section"><a href="/FrontPage" title="Debian Wiki Homepage">Wiki</a></p> <div id="username"><a href="/Exim4ATTUverse?action=login" id="login" rel="nofollow">Login</a></div> </div> <div id="navbar"> <ul id="navibar"> <li class="wikilink"><a href="/FrontPage">FrontPage</a></li><li class="wikilink"><a href="/RecentChanges">RecentChanges</a></li><li class="wikilink"><a href="/FindPage">FindPage</a></li><li class="wikilink"><a href="/HelpContents">HelpContents</a></li><li class="current"><a href="/Exim4ATTUverse">Exim4ATTUverse</a></li> </ul> </div> <form id="searchform" method="get" action="/Exim4ATTUverse"> <div> <input type="hidden" name="action" value="fullsearch"> <input type="hidden" name="context" value="180"> <label for="searchinput">Search:</label> <input id="searchinput" type="text" name="value" value="" size="20" onfocus="searchFocus(this)" onblur="searchBlur(this)" onkeyup="searchChange(this)" onchange="searchChange(this)" alt="Search"> <input id="titlesearch" name="titlesearch" type="submit" value="Titles" alt="Search Titles"> <input id="fullsearch" name="fullsearch" type="submit" value="Text" alt="Search Full Text"> </div> </form> <script type="text/javascript"> <!--// Initialize search form var f = document.getElementById('searchform'); f.getElementsByTagName('label')[0].style.display = 'none'; var e = document.getElementById('searchinput'); searchChange(e); searchBlur(e); //--> </script> <div id="logo"><a href="https://www.debian.org" title="Debian Homepage"><img src="https://www.debian.org/Pics/openlogo-50.png" alt="Debian" width="50" height="61"></a></div> <div id="breadcrumbs"><a href="/FrontPage" title="Debian Wiki Homepage">Wiki</a><span class="sep">/</span> </div> <ul class="editbar"><li><a href="/Exim4ATTUverse?action=login" id="login-1" rel="nofollow">Login</a></li><li class="toggleCommentsButton" style="display:none;"><a href="#" class="nbcomment" onClick="toggleComments();return false;">Comments</a></li><li><a class="nbinfo" href="/Exim4ATTUverse?action=info" rel="nofollow">Info</a></li><li><a class="nbattachments" href="/Exim4ATTUverse?action=AttachFile" rel="nofollow">Attachments</a></li><li> <form class="actionsmenu" method="GET" action="/Exim4ATTUverse"> <div> <label>More Actions:</label> <select name="action" onchange="if ((this.selectedIndex != 0) && (this.options[this.selectedIndex].disabled == false)) { this.form.submit(); } this.selectedIndex = 0;"> <option value="raw">Raw Text</option> <option value="print">Print View</option> <option value="RenderAsDocbook">Render as Docbook</option> <option value="show" disabled class="disabled">Delete Cache</option> <option value="show" disabled class="disabled">------------------------</option> <option value="SpellCheck">Check Spelling</option> <option value="LikePages">Like Pages</option> <option value="LocalSiteMap">Local Site Map</option> <option value="show" disabled class="disabled">------------------------</option> <option value="RenamePage" disabled class="disabled">Rename Page</option> <option value="DeletePage" disabled class="disabled">Delete Page</option> <option value="show" disabled class="disabled">------------------------</option> <option value="show" disabled class="disabled">Subscribe User</option> <option value="show" disabled class="disabled">------------------------</option> <option value="show" disabled class="disabled">Remove Spam</option> <option value="show" disabled class="disabled">Revert to this revision</option> <option value="PackagePages">Package Pages</option> <option value="show" disabled class="disabled">------------------------</option> <option value="Load">Load</option> <option value="Save">Save</option> <option value="SlideShow">SlideShow</option> </select> <input type="submit" value="Do"> </div> <script type="text/javascript"> <!--// Init menu actionsMenuInit('More Actions:'); //--> </script> </form> </li></ul> <h1 id="locationline"> <ul id="pagelocation"> <li><a href="/Exim4ATTUverse">Exim4ATTUverse</a></li> </ul> </h1> </div> <div id="page" lang="en" dir="ltr"> <div dir="ltr" id="content" lang="en"><span class="anchor" id="top"></span> <span class="anchor" id="line-1"></span><span class="anchor" id="line-2"></span><p class="line862">I recently enabled sending email from my Debian server (a <a href="/RaspberryPi">RaspberryPi</a>) outbound to my ISP's "smarthost": AT&T blocks port-25 for outbound email, and so I had to configure Exim4 to perform the necessary SSL connection and verification. <span class="anchor" id="line-3"></span><span class="anchor" id="line-4"></span><p class="line867"> <h3 id="Packages:">Packages:</h3> <span class="anchor" id="line-5"></span><span class="anchor" id="line-6"></span><p class="line867"><a class="interwiki" href="https://packages.debian.org/bind9-host" title="DebianPkg">bind9-host</a>: provides /usr/bin/host, which I used to perform DNS lookups for the SMTP "smarthost" machine AT&T asks us to use ("outbound.att.net".) This comes into play when configuring the /etc/exim4/passwd.client file. <span class="anchor" id="line-7"></span><span class="anchor" id="line-8"></span><p class="line867"><a class="interwiki" href="https://packages.debian.org/exim4-base" title="DebianPkg">exim4-base</a>, <span class="anchor" id="line-9"></span><a class="interwiki" href="https://packages.debian.org/exim4-config" title="DebianPkg">exim4-config</a>, <span class="anchor" id="line-10"></span><a class="interwiki" href="https://packages.debian.org/exim4-daemon-light" title="DebianPkg">exim4-daemon-light</a>: the Exim4 packages I have installed. <span class="anchor" id="line-11"></span><span class="anchor" id="line-12"></span><p class="line867"> <h3 id="Configuration:">Configuration:</h3> <span class="anchor" id="line-13"></span><span class="anchor" id="line-14"></span><p class="line862">First, you should have an email account provided as part of your Uverse account; for example, mine is something that ends in "@sbcglobal.net". There should also be a password used along with that email address, that can be used to log in to AT&T's own webmail. Anyway, this email account and password represent the authentication information that we will put in /etc/exim4/passwd.client. Follow the comments in that file, but note that the "outbound.att.net" machine (which is the machine listed as the "SMTP" machine by AT&T's own help site) is an alias for several other machine DNS names, due to the reverse-lookup that takes place by Exim4, it is recommended (by the /usr/share/doc/exim4-base/README.Debian.gz file for exim4) to duplicate the lines in passwd.client for all these various machine name aliases (and maintain those over time, as the machine names may change year to year.) My file ended up looking like this (line numbers are just to show how short the file is): <span class="anchor" id="line-15"></span><span class="anchor" id="line-16"></span><ul><li style="list-style-type:none">9 # Example: <span class="anchor" id="line-17"></span></li></ul><ul><li style="list-style-type:none">10 ### target.mail.server.example:login:password <span class="anchor" id="line-18"></span><p class="line862">11 outbound.att.net:<a class="mailto" href="mailto:uverse_email_name@sbcglobal.net">uverse_email_name@sbcglobal.net</a>:some_silly_password <span class="anchor" id="line-19"></span>12 smtp-att.mail.yahoo.com:<a class="mailto" href="mailto:uverse_email_name@sbcglobal.net">uverse_email_name@sbcglobal.net</a>:some_silly_password <span class="anchor" id="line-20"></span>13 smtp.att.mail.fy4.b.yahoo.com:<a class="mailto" href="mailto:uverse_email_name@sbcglobal.net">uverse_email_name@sbcglobal.net</a>:some_silly_password <span class="anchor" id="line-21"></span><span class="anchor" id="line-22"></span><span class="anchor" id="line-23"></span></li></ul><p class="line874">Next, I ran 'dpkg-reconfigure exim4-config', and selected 'smarthost' (for the outbound email from my server to my ISP's "smarthost" relay, used for sending email out to someone else.) I entered the 'outbound.att.net::587' information when prompted; the final update-exim4.conf.conf file contained this: <span class="anchor" id="line-24"></span><span class="anchor" id="line-25"></span><ul><li style="list-style-type:none">19 dc_eximconfig_configtype='smarthost' <span class="anchor" id="line-26"></span>20 dc_other_hostnames='foobar1.local;foobar2.dyndns.org;sbcglobal.net' <span class="anchor" id="line-27"></span><p class="line862">21 dc_local_interfaces=<em> <span class="anchor" id="line-28"></span>22 dc_readhost='foobar2.dyndns.org' <span class="anchor" id="line-29"></span>23 dc_relay_domains=</em> <span class="anchor" id="line-30"></span>24 dc_minimaldns='false' <span class="anchor" id="line-31"></span>25 dc_relay_nets=<em> <span class="anchor" id="line-32"></span>26 dc_smarthost='outbound.att.net::587' <span class="anchor" id="line-33"></span>27 CFILEMODE='644' <span class="anchor" id="line-34"></span>28 dc_use_split_config='false' <span class="anchor" id="line-35"></span>29 dc_hide_mailname='true' <span class="anchor" id="line-36"></span>30 dc_mailname_in_oh='true' <span class="anchor" id="line-37"></span>31 dc_localdelivery='mail_spool' <span class="anchor" id="line-38"></span><span class="anchor" id="line-39"></span></li></ul><p class="line874">(again, where the line numbers wouldn't be there of course; I'm showing line numbers through Vim.) <span class="anchor" id="line-40"></span><span class="anchor" id="line-41"></span><p class="line874">Here, line 20 ("dc_other_hostnames") contains the host names that may be on the email going out (I think); and includes my internal Avahi machine name like "foobar.local", and my Dyndns.com DNS domain name. I don't think the sbcglobal.net entry is needed though--it was just a precaution.) <span class="anchor" id="line-42"></span><span class="anchor" id="line-43"></span><p class="line874">Line 22 is the name I expect my email address (outside of my local network) to have. <span class="anchor" id="line-44"></span><span class="anchor" id="line-45"></span><p class="line862">Line 26 is a key part, citing the AT&T Uverse "smarthost" machine, and port to which an SSL or TLS connection will be made. And so on. <span class="anchor" id="line-46"></span><span class="anchor" id="line-47"></span><p class="line874">Then, I ran 'update-exim4.conf' to process the .conf.conf file above, and restarted exim4 with '/etc/init.d/exim4 restart' as root. <span class="anchor" id="line-48"></span><span class="anchor" id="line-49"></span><p class="line862">Then, using 'mutt' (or whatever email client you prefer), I attempted to send an email. I watched /var/log/exi4/mainlog (or whatever it is called) and watched Exim4 work. I saw that the email didn't go out as expected: I got an error 553, with a note saying that the email address I was using had not been verified. I was given a URL (that no longer worked) to some Yahoo help page (AT&T Uverse's email is handled by Yahoo) for guidance; some Google searching later provided what I needed: I had to log in to mail.yahoo.com usng my Uverse email/password, and browse over to the settings and account options, and add an additional email address (for <a class="mailto" href="mailto:userid@foobar2.dyndns.org">userid@foobar2.dyndns.org</a>, for example.) When saving, there was an option for "sending email only" which I selected, which also short-circuited adding additional information. When I then attempted to send another email, I saw success as measured by the Exim4 log, as well as in seeing the email make it out to the intended destination (like a Gmail account, etc.) <span class="anchor" id="line-50"></span><span class="anchor" id="line-51"></span><p class="line867"><hr /><p class="line874"> <span class="anchor" id="line-52"></span><span class="anchor" id="line-53"></span><p class="line867"><a href="/CategorySoftware">CategorySoftware</a> <a href="/CategoryNetwork"><strong class="highlight">CategoryNetwork</strong></a> <a href="/CategoryMail">CategoryMail</a> <a href="/CategoryProposedDeletion">CategoryProposedDeletion</a> <span class="anchor" id="line-54"></span><span class="anchor" id="bottom"></span></div><div id="pagebottom"></div> </div> <div id="footer"> <p id="pageinfo" class="info" lang="en" dir="ltr">Exim4ATTUverse (<a class="nbinfo" href="/Exim4ATTUverse?action=info" rel="nofollow">last modified 2019-12-06 07:40:23</a>)</p> <ul id="credits"> <li>Debian <a href="https://www.debian.org/legal/privacy">privacy policy</a>, Wiki <a href="/Teams/DebianWiki">team</a>, <a href="https://bugs.debian.org/wiki.debian.org">bugs</a> and <a href="https://salsa.debian.org/debian/wiki.debian.org">config</a>.</li><li>Powered by <a href="https://moinmo.in/" title="This site uses the MoinMoin Wiki software.">MoinMoin</a> and <a href="https://moinmo.in/Python" title="MoinMoin is written in Python.">Python</a>, with hosting provided by <a href="https://www.man-da.de/">Metropolitan Area Network Darmstadt</a>.</li> </ul> </div> </body> </html>