<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Erics Tech Blog &#187; Mail</title>
	<atom:link href="http://eric.lubow.org/category/mail/feed/" rel="self" type="application/rss+xml" />
	<link>http://eric.lubow.org</link>
	<description>Thoughts, musings, and other idealistic (sometimes useful) systems and development hoopla.</description>
	<lastBuildDate>Fri, 18 Nov 2011 14:56:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>A Few Words About Setting Up Postfix Multi Instance</title>
		<link>http://eric.lubow.org/2010/mail/a-few-words-about-setting-up-postfix-multi-instance/</link>
		<comments>http://eric.lubow.org/2010/mail/a-few-words-about-setting-up-postfix-multi-instance/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 13:00:53 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Mail]]></category>
		<category><![CDATA[postfix]]></category>

		<guid isPermaLink="false">http://eric.lubow.org/?p=659</guid>
		<description><![CDATA[I work with email and Postfix. On every mailing machine I have Postfix setup on, I have at least 2 instances, sometimes more (in fact, sometimes its as many as 6 instances). I was recently setting up a new set of mailers and decided to give Postfix multi-instance seutp a try. It was excellent. There [...]]]></description>
			<content:encoded><![CDATA[<p>I work with email and <a href="http://www.postfix.org">Postfix</a>.  On every mailing machine I have Postfix setup on, I have at least 2 instances, sometimes more (in fact, sometimes its as many as 6 instances).  I was recently setting up a new set of mailers and decided to give Postfix multi-instance seutp a try.  It was excellent.  There really isn&#8217;t too many complex setups that have a simple installation. And to that end, I give Postfix credit where credit is due.  It usually takes a little more than just following the README.<br />
<span id="more-659"></span><br />
Finally, it didn&#8217;t.  I started up Postfix multi and created an instance using <strong>postmulti</strong> for each instance I wanted to create.  Then I took my Postfix configuration files from each instance on the previous machine and copied them into their respective directories.  I replaced the Postmulti lines and voila.</p>
<p>More specifically, create the Postfix multi-instance.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># postmulti -e init<br />
# postmulti -I postfix-bounce -G pfbounce -e create</div></div>
<p>If you want the Postfix instance to listen on a TCP port, make sure the <em>master_service_disable</em> variable is unset (as below) and that the <em>inet_interfaces</em> variable is set to the IPs that you want the instance to listen on.  Also, after copying over your <strong>main.cf</strong> and <strong>master.cf</strong> files, you will lose the Postfix multi settings.  Just make sure the following settings are in the instance specific <strong>main.cf</strong>.</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">master_service_disable =<br />
authorized_submit_users = <br />
multi_instance_group = pfbounce<br />
multi_instance_name = postfix-bounce<br />
multi_instance_enable = <span style="color: #c20cb9; font-weight: bold;">yes</span></div></div>
<p>If you are editing the files by hand, make sure you don&#8217;t lose the main Postfix instance multi-instances settings (I know that was a mouthful):</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">command_directory = <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>sbin<br />
multi_instance_wrapper = <span style="color: #800000;">${command_directory}</span><span style="color: #000000; font-weight: bold;">/</span>postmulti <span style="color: #660033;">-p</span> <span style="color: #660033;">--</span><br />
multi_instance_enable = <span style="color: #c20cb9; font-weight: bold;">yes</span><br />
multi_instance_directories = <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>postfix-bounce, <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>postfix-return</div></div>
<p>Then you can fire up the instance by executing the following command:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># postmulti -i postfix-bounce -e enable<br />
# postmulti -i postfix-bounce -p start</div></div>
<p>From there on in, you can control all instances, a specific instance or even group the instances.  Its about time complex setups got easy.</p>


<p>Related posts:<ol><li><a href='http://eric.lubow.org/2009/mail/setting-up-dkim-and-postfix/' rel='bookmark' title='Setting Up DKIM and Postfix on CentOS 5.2'>Setting Up DKIM and Postfix on CentOS 5.2</a></li>
<li><a href='http://eric.lubow.org/2009/mac/external-multi-touch-trackpad-for-a-mac/' rel='bookmark' title='What About An External Multi-Touch Trackpad For a Mac'>What About An External Multi-Touch Trackpad For a Mac</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://eric.lubow.org/2010/mail/a-few-words-about-setting-up-postfix-multi-instance/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>List of Feedback Loops</title>
		<link>http://eric.lubow.org/2010/mail/list-of-feedback-loops/</link>
		<comments>http://eric.lubow.org/2010/mail/list-of-feedback-loops/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 11:30:40 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Mail]]></category>
		<category><![CDATA[feedback loops]]></category>
		<category><![CDATA[SPAM]]></category>

		<guid isPermaLink="false">http://eric.lubow.org/?p=519</guid>
		<description><![CDATA[This is the most comprehensive list of feedback loops that I have been able to find and put together. If there are others that you know of, please let me know and I&#8217;ll add them. The other item that should be noted is that some ISPs don&#8217;t have a feedback loop and just respond to [...]]]></description>
			<content:encoded><![CDATA[<p>This is the most comprehensive list of feedback loops that I have been able to find and put together.  If there are others that you know of, please let me know and I&#8217;ll add them.</p>
<p>The other item that should be noted is that some ISPs don&#8217;t have a feedback loop and just respond to the abuse@ or postmaster@ email addresses for a domain.  In addition to the feedback loop setup, ensure you have those addresses as valid addresses for your domain.</p>
<p>For more information on Feedback loops and how they help your deliverability, see the Wikipedia entry on <a href="http://en.wikipedia.org/wiki/Feedback_Loop_%28email%29">Feedback Loops</a>.<br />
<span id="more-519"></span></p>
<ul>
<li><a href="http://www.abuse.net/">Abuse.net</a> &#8211; Not technically a feedback loop, but your domain(s) should be listed.</li>
<li><a href="http://www.postmaster.aol.com/fbl/index.html">AOL</a></li>
<li><a href="http://feedback.bluetie.com/">Bluetie</a> &#8211; Handles Excite</li>
<li><a href="http://feedback.comcast.net/">Comcast</a></li>
<li><a href="mailto:fblrequest@abuse.earthlink.net">Earthlink</a> &#8211; Just an email address. Good luck hearing back from them.</li>
<li><a href="http://fbl.cox.net/">Cox</a></li>
<li><a href="mailto:postmaster@outblaze.com">Outblaze</a> &#8211; Just an email address, but were pretty responsive.</li>
<li><a href="https://support.msn.com/eform.aspx?productKey=edfsjmrpp&#038;ct=eformts&#038;scrx=1">MSN/Hotmail</a></li>
<li><a href="http://feedback.postmaster.rr.com/">Road Runner</a></li>
<li><a href="http://www.unitedonline.net/postmaster/whitelisted.html">United Online</a> &#8211; Juno, NetZero and BlueLight Internet</li>
<li><a href="http://fbl.usa.net/">USA.net</a></li>
<li><a href="http://feedbackloop.yahoo.net/">Yahoo!</a></li>
<li><a href="http://fbl.apps.rackspace.com/">MailTrust/Rackspace</a></li>
<li><a href="http://fbl.hostedemail.com/">Tucows/Hosted Email</a></li>
</ul>


<p>Related posts:<ol><li><a href='http://eric.lubow.org/2009/mail/redacted-on-a-feedback-loop/' rel='bookmark' title='Redacted On A Feedback Loop'>Redacted On A Feedback Loop</a></li>
<li><a href='http://eric.lubow.org/2009/databases/mysql/counting-email-addresses-by-domain-in-mysql/' rel='bookmark' title='Counting Email Addresses By Domain in MySQL'>Counting Email Addresses By Domain in MySQL</a></li>
<li><a href='http://eric.lubow.org/2007/perl/emailfind/' rel='bookmark' title='Email::Find'>Email::Find</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://eric.lubow.org/2010/mail/list-of-feedback-loops/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Transferring Email From Gmail/Google Apps to Dovecot With Larch</title>
		<link>http://eric.lubow.org/2009/mail/transferring-email-from-gmailgoogle-apps-to-dovecot-with-larch/</link>
		<comments>http://eric.lubow.org/2009/mail/transferring-email-from-gmailgoogle-apps-to-dovecot-with-larch/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 12:15:56 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Mail]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[imap]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://eric.lubow.org/?p=458</guid>
		<description><![CDATA[As regular readers of this blog know, I am in the process of trying to back up Google Apps accounts to Dovecot. Well I have finally found my solution. Not only does it work, but its in Ruby. First thing that you&#8217;ll need to do is grab yourself a copy of Larch. I did this [...]]]></description>
			<content:encoded><![CDATA[<p>As regular readers of this blog know, I am in the process of trying to back up <a href="http://eric.lubow.org/2009/mail/backing-up-gmailgoogle-apps-to-a-dovecot-server/">Google Apps accounts to Dovecot</a>.  Well I have finally found my solution.  Not only does it work, but its in Ruby.</p>
<p>First thing that you&#8217;ll need to do is grab yourself a copy of <a href="http://github.com/rgrove/larch">Larch</a>.  I did this simply by typing and it installed everything nicely, but click the link to the repository on Github if it doesn&#8217;t work for you.<br />
<span id="more-458"></span></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ sudo gem install larch</div></div>
<p>Immediately I dove in and ran it.  And immediately I hit my first problem:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ larch --from imaps://imap.gmail.com --from-user user@gmail.com --from-pass FILTERED --to-pass me@myserver.com --to-pass FILTERED --all<br />
... Removed for brevity ...<br />
NameError: uninitialized constant Larch::IMAP::OpenSSL (cannot recover)</div></div>
<p>The fix for this issue is that SSL needs to be available (or installed as a library) to Ruby.  Since I have Ruby built from source, it was just as easy as what&#8217;s below.  I have removed the output for readability.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ cd /usr/local/src/ruby-1.8.6/ext/openssl<br />
$ ruby extconf.rb<br />
$ make<br />
$ sudo make install</div></div>
<p>Now that we have SSL installed, let&#8217;s try it again.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[Dec 07 16:54:06] [info] user1@googleappsdomain.com@mail.mydomain.com: Net::IMAP::NoResponseError: Mailbox doesn't allow inferior mailboxes (will retry)<br />
[Dec 07 16:54:09] [fatal] Net::IMAP::NoResponseError: Mailbox doesn't allow inferior mailboxes (giving up)<br />
[Dec 07 16:54:09] [info] 69 message(s) copied, 0 failed, 0 untouched out of 69 total</div></div>
<p>Whoops, another stopping point.  If you are receiving the above error, then you need to make sure that your dovecot installation is set up for maildir.  What this error is saying is that your installation doesn&#8217;t support folder that are folders and mailboxes at the same time.  If your current dovecot installation is setup for mbox, you will need to convert it.  That is beyond the scope of this post, but add the code below in the <strong>/etc/dovecot.conf</strong> if it&#8217;s not already there.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">mail_location = maildir:/var/spool/mail/vhosts/%d/%u/Maildir<br />
namespace private {<br />
separator = /<br />
prefix = &quot;&quot;<br />
inbox = yes<br />
}</div></div>
<p>I have been happily and successfully running Larch ever since.  </p>


<p>Related posts:<ol><li><a href='http://eric.lubow.org/2009/mail/backing-up-gmailgoogle-apps-to-a-dovecot-server/' rel='bookmark' title='Backing Up Gmail/Google Apps to a Dovecot Server'>Backing Up Gmail/Google Apps to a Dovecot Server</a></li>
<li><a href='http://eric.lubow.org/2007/perl/mailimapclient/' rel='bookmark' title='Mail::IMAPClient'>Mail::IMAPClient</a></li>
<li><a href='http://eric.lubow.org/2007/perl/emailfind/' rel='bookmark' title='Email::Find'>Email::Find</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://eric.lubow.org/2009/mail/transferring-email-from-gmailgoogle-apps-to-dovecot-with-larch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Backing Up Gmail/Google Apps to a Dovecot Server</title>
		<link>http://eric.lubow.org/2009/mail/backing-up-gmailgoogle-apps-to-a-dovecot-server/</link>
		<comments>http://eric.lubow.org/2009/mail/backing-up-gmailgoogle-apps-to-a-dovecot-server/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 11:00:48 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Mail]]></category>
		<category><![CDATA[dovecot]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[imap]]></category>

		<guid isPermaLink="false">http://eric.lubow.org/?p=446</guid>
		<description><![CDATA[I have been trying to find a way to copy everything from a Gmail account to a Dovecot mail server. The way I have ended up doing it so far is simply by using Apple Mail (if you regularly read this blog, you&#8217;d know that I use a Mac). The steps are as follows: Create [...]]]></description>
			<content:encoded><![CDATA[<p>I have been trying to find a way to copy everything from a Gmail account to a Dovecot mail server.  The way I have ended up doing it so far is simply by using Apple Mail (if you regularly read this blog, you&#8217;d know that I use a Mac).  The steps are as follows:</p>
<ol>
<li>Create 2 accounts in Apple Mail: Gmail and the Dovecot account</li>
<li>Sync the Gmail account to your local computer</li>
<li>Copy everything to the Dovecot server</li>
</ol>
<p>This works, but I have to use a slow connection (my home connection) and I have a lot of accounts to do this for, so I would much prefer to script this.  The problem is that I have been trying to get this to work with either <a href="http://freshmeat.net/projects/imapsync/">imapsync</a> or <a href="http://code.google.com/p/imapcopy/">imapcopy</a>.  Neither seem to work properly.<br />
<span id="more-446"></span><br />
According to the documentation, I have the proper version and it should work with GMail.  I tried all the supported <strong>&#8211;authmech1</strong> possibilities.  I found an article saying that Google doesn&#8217;t accept the word <em>AUTHENTICATE</em> when authenticating, but then imapsync wouldn&#8217;t work and it claims it does.  So, when trying imapsync, this is what it looked like (some of the security issues have been blocked to protect the innocent):</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[root@smtp4 imapsync-1.286]# ./imapsync --host1 imap.gmail.com --ssl1 --user1 user1@gmail.com --password1 MASKED --host2 mail.server.com --user2 user1@server.com --password2 MASKED<br />
$RCSfile: imapsync,v $ $Revision: 1.286 $ $Date: 2009/07/24 15:53:04 $ <br />
Here is a [linux] system (Linux mail.server.com 2.6.18-92.1.18.el5xen #1 SMP Wed Nov 12 09:48:10 EST 2008 x86_64)<br />
with perl 5.8.8<br />
Mail::IMAPClient &nbsp;3.21<br />
IO::Socket &nbsp; &nbsp; &nbsp; &nbsp;1.31<br />
IO::Socket::SSL &nbsp; <br />
Digest::MD5 &nbsp; &nbsp; &nbsp; 2.36<br />
Digest::HMAC_MD5 &nbsp;<br />
Term::ReadKey &nbsp; &nbsp; <br />
Date::Manip &nbsp; &nbsp; &nbsp; <br />
&nbsp;and the module Mail::IMAPClient version used here is 3.21<br />
Command line used:<br />
./imapsync --host1 imap.gmail.com --ssl1 --user1 user1@gmail.com --password1 MASKED --host2 mail.server.com --user2 user1@server.com --password2 MASKED --useheader Message-Id --skipsize --regextrans2 s/\[Gmail\]/Gmail/</div></div>
<p>My attempt at imapcopy was closer to successful, but still not what I needed.  I ran into some Dovecot errors (at least I think that&#8217;s what it is) that I am not sure what to do with.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[root@smtp4 imapCopy]# time sh imapCopy.sh imaps://user1%40gmail.com:MASKED@imap.gmail.com imap://user1%40server.com:MASKED@mail.server.com<br />
2009-12-02 18:13:28,811 &nbsp;INFO ImapCopier - Starting<br />
2009-12-02 18:13:28,812 DEBUG ImapCopier - Parameters length:2<br />
2009-12-02 18:13:28,813 DEBUG ImapCopier - opening conections<br />
2009-12-02 18:13:28,816 DEBUG ImapCopier - opening imaps conection to imap.gmail.com<br />
2009-12-02 18:13:32,633 DEBUG ImapCopier - opening imap conection to mail.server.com<br />
2009-12-02 18:13:34,666 DEBUG ImapCopier - Creating target Folder: Adbrite<br />
Exception in thread &quot;main&quot; javax.mail.MessagingException: Unsupported type;<br />
&nbsp; nested exception is:<br />
&nbsp; &nbsp; &nbsp; &nbsp; com.sun.mail.iap.ProtocolException: Unsupported type<br />
&nbsp; &nbsp; &nbsp; &nbsp; at com.sun.mail.imap.IMAPFolder.doCommandIgnoreFailure(IMAPFolder.java:2618)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at com.sun.mail.imap.IMAPFolder.create(IMAPFolder.java:725)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at com.fisbein.joan.model.ImapCopier.copyFolderAndMessages(ImapCopier.java:190)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at com.fisbein.joan.model.ImapCopier.copy(ImapCopier.java:152)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at com.fisbein.joan.model.ImapCopier.main(ImapCopier.java:35)<br />
Caused by: com.sun.mail.iap.ProtocolException: Unsupported type<br />
&nbsp; &nbsp; &nbsp; &nbsp; at com.sun.mail.imap.IMAPFolder$6.doCommand(IMAPFolder.java:745)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at com.sun.mail.imap.IMAPFolder.doProtocolCommand(IMAPFolder.java:2639)<br />
&nbsp; &nbsp; &nbsp; &nbsp; at com.sun.mail.imap.IMAPFolder.doCommandIgnoreFailure(IMAPFolder.java:2611)<br />
&nbsp; &nbsp; &nbsp; &nbsp; ... 4 more</div></div>
<p>So if you have any idea what to do here in a more intelligent manner than I am stuck with, please let me know in the comments.  Thanks.</p>


<p>Related posts:<ol><li><a href='http://eric.lubow.org/2009/mail/transferring-email-from-gmailgoogle-apps-to-dovecot-with-larch/' rel='bookmark' title='Transferring Email From Gmail/Google Apps to Dovecot With Larch'>Transferring Email From Gmail/Google Apps to Dovecot With Larch</a></li>
<li><a href='http://eric.lubow.org/2007/perl/mailimapclient/' rel='bookmark' title='Mail::IMAPClient'>Mail::IMAPClient</a></li>
<li><a href='http://eric.lubow.org/2009/system-administration/creating-a-slave-dns-server-on-bind9/' rel='bookmark' title='Creating a Slave DNS Server on Bind9'>Creating a Slave DNS Server on Bind9</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://eric.lubow.org/2009/mail/backing-up-gmailgoogle-apps-to-a-dovecot-server/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Redacted On A Feedback Loop</title>
		<link>http://eric.lubow.org/2009/mail/redacted-on-a-feedback-loop/</link>
		<comments>http://eric.lubow.org/2009/mail/redacted-on-a-feedback-loop/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 00:00:43 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Mail]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://eric.lubow.org/?p=266</guid>
		<description><![CDATA[This post is a little more of a rant than I usually make, but I think its warranted. If you don&#8217;t know what a feedback loop is, read here. I&#8217;m not sure who thinks its a good idea to replace all instances of an email addresses in a feedback loop with [redacted]@feedbackloopcompany.com, but it is [...]]]></description>
			<content:encoded><![CDATA[<p>This post is a little more of a rant than I usually make, but I think its warranted.  If you don&#8217;t know what a feedback loop is, read <a href="http://en.wikipedia.org/wiki/Feedback_Loop_%28email%29">here</a>.</p>
<p>I&#8217;m not sure who thinks its a good idea to replace all instances of an email addresses in a feedback loop with [redacted]@feedbackloopcompany.com, but it is of no help to anyone. An argument can be made for protecting the identity of the recipient, but that argument holds little weight because there is little the sender can do about it.</p>
<p>If a sender needs to go through the authorization process of a larger recipient domain (like AOL, Yahoo!, or Excite for example) where their IP reputation is checked and their history is checked, etc. then why should there still be restrictions placed on the information going between the two domains (you as the sender and them as the recipient domains).  I am aware that the draft specification allow the operating domain for the feedback loop to keep the identity private of the user clicking the &#8220;Report SPAM&#8221; button, but that forces the sending domains to use tactics to circumvent this to keep their reputation up.</p>
<p>Therefore I believe that if a sending company has verified their feedback loop address, they should be able to see which recipient reported their email as &#8220;Junk&#8221;.  Get rid of the <strong>redacted</strong> and leave the email address intact.</p>


<p>Related posts:<ol><li><a href='http://eric.lubow.org/2010/mail/list-of-feedback-loops/' rel='bookmark' title='List of Feedback Loops'>List of Feedback Loops</a></li>
<li><a href='http://eric.lubow.org/2007/perl/mailsender/' rel='bookmark' title='Mail::Sender'>Mail::Sender</a></li>
<li><a href='http://eric.lubow.org/2010/news/yahoo-and-goodmail-cut-the-cord-temporarily/' rel='bookmark' title='Yahoo and Goodmail Cut the Cord (Temporarily)'>Yahoo and Goodmail Cut the Cord (Temporarily)</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://eric.lubow.org/2009/mail/redacted-on-a-feedback-loop/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>More Efficient SPAM Fighting with Amavisd-logwatch</title>
		<link>http://eric.lubow.org/2009/spam/more-efficient-spam-fighting-with-amavisd-logwatch/</link>
		<comments>http://eric.lubow.org/2009/spam/more-efficient-spam-fighting-with-amavisd-logwatch/#comments</comments>
		<pubDate>Fri, 22 May 2009 13:00:23 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Mail]]></category>
		<category><![CDATA[SPAM]]></category>
		<category><![CDATA[amavisd-new]]></category>
		<category><![CDATA[statistics]]></category>

		<guid isPermaLink="false">http://eric.lubow.org/?p=164</guid>
		<description><![CDATA[This is the first in a multipart series on better SPAM fighting through log parsing. I have found that better Systems Administration can usually be achieved through proper log handling and analysis. In fact, I will use the data from one of the secondary mail servers in my personal mail setup in order to demonstrate [...]]]></description>
			<content:encoded><![CDATA[<p> This is the first in a multipart series on better SPAM fighting through log parsing.  I have found that better Systems Administration can usually be achieved through proper log handling and analysis.  In fact, I will use the data from one of the secondary mail servers in my personal mail setup in order to demonstrate this data analysis.  I will do this by going through the report generated by <a href="http://www.mikecappella.com/logwatch/">amavisd-logwatch</a> piece meal until complete.</p>
<p>I previously <a href="http://eric.lubow.org/2009/spam/deploying-amavisd-logwatch/">posted</a> about a program that parses your amavisd-new SPAM log file called <a href="http://www.mikecappella.com/logwatch/">amavisd-logwatch</a>.  Now I am going to give you some tutorials of how to make efficient use of the results.  I am assuming that you have access your SpamAssassin scoring config files.  I am also assuming that you have access to the log parsing results.  I have mine sent via email daily.</p>
<p>One item I would like to mention is that when making changes to SPAMAssassin, ensure that you make them in a separate file from the default configuration files.  I use <strong>/etc/spamassassin/local_tests.cf</strong>. I strongly recommend this setup as this makes it easier to segment your configuration files by type when your rule sets and modifications start to get larger and larger.</p>
<p><strong>Section: Bayes Probability</strong><br />
First things first, skip the majority of the summary sections and go right down to the section on Bayes probability:<br />
<div id="attachment_193" class="wp-caption aligncenter" style="width: 707px"><a href="http://eric.lubow.org/wp-content/uploads/2009/05/amavis_logwatch_p1_bayes_prob.jpg"><img src="http://eric.lubow.org/wp-content/uploads/2009/05/amavis_logwatch_p1_bayes_prob.jpg" alt="Bayes Probability Information" title="Bayes Probability Information" width="697" height="162" class="size-full wp-image-193" /></a><p class="wp-caption-text">Bayes Probability Information</p></div></p>
<p>You&#8217;ll notice that of the 14,627 times that the Bayesian filter was run on messages, that it came up with <strong>BAYES_99</strong> 11,825 of those times (or 80.85%) .  You&#8217;ll also notice that all the subsequent <strong>BAYES_XX</strong> probability tests were extremely low (2nd and 3rd place being 5.4% and 4.5% respectively).</p>
<p><strong>Conclusion:</strong> Assuming that you are relatively happy with your current level of SPAM filtering, that would mean that your Bayes filter is doing fairly well (in general).  You may not need to tweak it.  If you are feeling frisky though, to tweak the impact that the <strong>BAYES_99</strong>.  To change this, open up your <strong>local_test.cf</strong> and add the line:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">score BAYES_99 (1.25)</div></div>
<p>This increases your <strong>BAYES_99</strong> score by 1.25 points from its base.  It doesn&#8217;t have to be 1.25 points, start small to see what you are comfortable with and slowly work your way up.  Be careful as too high a jump will cause false positives which makes for angry users.</p>
<p><strong>Section: SPAM Score Frequency</strong><br />
The SPAM score frequency refers to how often a piece of email scores within a given range.<br />
<div id="attachment_198" class="wp-caption aligncenter" style="width: 744px"><a href="http://eric.lubow.org/wp-content/uploads/2009/05/amavis_logwatch_p1_score_freq.jpg"><img src="http://eric.lubow.org/wp-content/uploads/2009/05/amavis_logwatch_p1_score_freq.jpg" alt="SPAM Score Frequency" title="SPAM Score Frequency" width="734" height="89" class="size-full wp-image-198" /></a><p class="wp-caption-text">SPAM Score Frequency</p></div></p>
<p><strong>Conclusion:</strong> Taking note of the fact that nearly 60% of the emails scored a 30 or higher, and assuming again that you are comfortable with your SPAM filter, you can adjust the SPAM kill score threshold in amavisd-new accordingly.  I trust my SPAM filter, but I have written many rules and made many tweaks to it.  So I have set my SPAM kill threshold low enough (<strong>15.8</strong> to be exact).  As you can see, this is pretty close to the middle of the set of numbers (also known as the median).  This eliminates the delivery of the vast majority of the obvious SPAM.</p>
<p>Stay tuned for the next part in the series where we will tweak the individual scores based on the results report.</p>


<p>Related posts:<ol><li><a href='http://eric.lubow.org/2009/spam/deploying-amavisd-logwatch/' rel='bookmark' title='Deploying Amavisd-logwatch'>Deploying Amavisd-logwatch</a></li>
<li><a href='http://eric.lubow.org/2009/mail/setting-up-dkim-and-postfix/' rel='bookmark' title='Setting Up DKIM and Postfix on CentOS 5.2'>Setting Up DKIM and Postfix on CentOS 5.2</a></li>
<li><a href='http://eric.lubow.org/2009/ruby/parsing-ini-files-with-ruby/' rel='bookmark' title='Parsing Ini Files With Ruby'>Parsing Ini Files With Ruby</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://eric.lubow.org/2009/spam/more-efficient-spam-fighting-with-amavisd-logwatch/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Deploying Amavisd-logwatch</title>
		<link>http://eric.lubow.org/2009/spam/deploying-amavisd-logwatch/</link>
		<comments>http://eric.lubow.org/2009/spam/deploying-amavisd-logwatch/#comments</comments>
		<pubDate>Fri, 08 May 2009 14:00:39 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Mail]]></category>
		<category><![CDATA[SPAM]]></category>
		<category><![CDATA[amavisd-new]]></category>

		<guid isPermaLink="false">http://eric.lubow.org/?p=155</guid>
		<description><![CDATA[I was looking for way to make my SPAM filtering more effective and came across this great tool from Mike Cappella called amavisd-logwatch. On his web site, it says he doesn&#8217;t like waiting for package maintainers, so its just a tarball. Since my installs are Debian based, I created a deb for it. My .deb [...]]]></description>
			<content:encoded><![CDATA[<p>I was looking for way to make my SPAM filtering more effective and came across this great tool from <a href="http://www.mikecappella.com/">Mike Cappella</a> called <a href="http://www.mikecappella.com/logwatch/">amavisd-logwatch</a>.</p>
<p>On his web site, it says he doesn&#8217;t like waiting for package maintainers, so its just a tarball.  Since my installs are <a href="http://www.debian.org/">Debian</a> based, I created a deb for it.  My .deb creating skills are not perfect, but it works.  The deb was built on sid and is available <a href='http://eric.lubow.org/wp-content/uploads/2009/05/amavis-logwatch_1.49.09-1.1_i386.deb'>here</a>.</p>
<p>Download the Debian package and install it:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">mail:~# dpkg -i amavis-logwatch_1.49.09-1.1_i386.deb <br />
Selecting previously deselected package amavis-logwatch.<br />
(Reading database ... 37342 files and directories currently installed.)<br />
Unpacking amavis-logwatch (from amavis-logwatch_1.49.09-1.1_i386.deb) ...<br />
Setting up amavis-logwatch (1.49.09-1.1) ...<br />
Processing triggers for man-db ...</div></div>
<p>Leaving the defaults are safe in the config file.  The one thing that does need to be changed is the additional cron script that I added to the installer.  It will email the output of the script when <strong>cron.daily</strong> runs.  If you do not want this to happen, then just delete the file <strong>/etc/cron.daily/amavis-logwatch</strong>.  To have the script run, you have to edit it and change the defaults to reasonable defaults (like proper <em>From</em>, <em>To</em>, and <em>CC</em> email addresses).  Also make sure to change the <strong>/var/log/mail.log</strong> file if that isn&#8217;t the location of your mail log.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$SUMMARY=`/usr/bin/amavis-logwatch --detail 5 -f /etc/amavis-logwatch.conf /var/log/mail.log`;<br />
...<br />
# Set the email header fun<br />
$FROM = &quot;\&quot;Postmaster\&quot; &lt;postmaster \@example.com&gt;&quot;;<br />
$TO = &quot;\&quot;To\&quot; &lt;to \@example.com&gt;&quot;;<br />
$CC = &quot;\&quot;CC\&quot; &lt;cc \@example.com&gt;&quot;;<br />
&lt;/cc&gt;&lt;/to&gt;&lt;/postmaster&gt;</div></div>
<p>Once you have made those changes, you will receive a nightly report with your amavisd-new log information.</p>


<p>Related posts:<ol><li><a href='http://eric.lubow.org/2009/spam/more-efficient-spam-fighting-with-amavisd-logwatch/' rel='bookmark' title='More Efficient SPAM Fighting with Amavisd-logwatch'>More Efficient SPAM Fighting with Amavisd-logwatch</a></li>
<li><a href='http://eric.lubow.org/2010/mail/list-of-feedback-loops/' rel='bookmark' title='List of Feedback Loops'>List of Feedback Loops</a></li>
<li><a href='http://eric.lubow.org/2010/system-administration/creating-dummy-packages-on-debian/' rel='bookmark' title='Creating Dummy Packages On Debian'>Creating Dummy Packages On Debian</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://eric.lubow.org/2009/spam/deploying-amavisd-logwatch/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>What is a DRD</title>
		<link>http://eric.lubow.org/2009/mail/what-is-a-drd/</link>
		<comments>http://eric.lubow.org/2009/mail/what-is-a-drd/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 14:00:24 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Mail]]></category>
		<category><![CDATA[drd]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[smtp]]></category>

		<guid isPermaLink="false">http://eric.lubow.org/?p=139</guid>
		<description><![CDATA[I have Google&#8217;d around asked a lot of smart people and still can&#8217;t come up with a solid answer. More specifically, the question I have is: Why, when sending emails to certain domains, do I get the error: 451 Could not load DRD for domain Because I deal with fairly large mailing lists, I see [...]]]></description>
			<content:encoded><![CDATA[<p>I have Google&#8217;d around asked a lot of smart people and still can&#8217;t come up with a solid answer.  More specifically, the question I have is:</p>
<blockquote><p>Why, when sending emails to certain domains, do I get the error: <strong>451 Could not load DRD for domain</strong></p></blockquote>
<p>Because I deal with fairly large mailing lists, I see odd errors a lot.  Most of them I can disregard. In any case in which I see an error over 1,000 times, I make it a policy to deal with it.  I have seen one close to 9 million.</p>
<p>It appears to be an error from a Symantec appliance, but people write about it coming from Exchange servers as well.</p>
<p>If anyone has any idea what this, please email me, leave a comment, or post a link to somewhere.</p>


<p>Related posts:<ol><li><a href='http://eric.lubow.org/2007/perl/mailimapclient/' rel='bookmark' title='Mail::IMAPClient'>Mail::IMAPClient</a></li>
<li><a href='http://eric.lubow.org/2007/lua/mysql-proxy-query-profiling/' rel='bookmark' title='MySQL Proxy Query Profiling'>MySQL Proxy Query Profiling</a></li>
<li><a href='http://eric.lubow.org/2007/perl/iosocketinet/' rel='bookmark' title='IO::Socket::INET'>IO::Socket::INET</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://eric.lubow.org/2009/mail/what-is-a-drd/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Setting Up DKIM and Postfix on CentOS 5.2</title>
		<link>http://eric.lubow.org/2009/mail/setting-up-dkim-and-postfix/</link>
		<comments>http://eric.lubow.org/2009/mail/setting-up-dkim-and-postfix/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 13:30:06 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Mail]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[dkim]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[SPAM]]></category>

		<guid isPermaLink="false">http://eric.lubow.org/?p=106</guid>
		<description><![CDATA[I spent a while trying to set up DKIM with Postfix on CentOS 5.2. I read the HOWTOs on HOWToForge written by Andrew Colin Kissa (aka TopDog) who subsequently helped me towards getting this setup working. My setup is that I have a mail spooler and multiple mail senders. This is to say that the [...]]]></description>
			<content:encoded><![CDATA[<p>I spent a while trying to set up DKIM with Postfix on CentOS 5.2.  I read the <a href="http://www.howtoforge.com/set-up-dkim-on-postfix-with-dkim-milter-centos-5.2">HOWTOs</a> on <a href="http://www.howtoforge.com/">HOWToForge</a> written by Andrew Colin Kissa (aka TopDog) who subsequently helped me towards getting this setup working.</p>
<p>My setup is that I have a mail spooler and multiple mail senders.  This is to say that the emails are created on spooler.domain.com and sent via sender1.domain.com and sender2.domain.com.  I will walk through how to setup DKIM on the sender machines so that all mail spooled from the spooler still gets signed.</p>
<p>First start out by installing DKIM. At the time the HOWTO was published, I downloaded the RPM from Topdog.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[root@sender1 dkim]# wget http://www.topdog-software.com/oss/dkim-milter/dkim-milter-2.8.2-0.$(uname -i).rpm<br />
...<br />
[root@sender1 dkim]# rpm -Uvh dkim-milter-2.8.2-0.x86_64.rpm <br />
warning: dkim-milter-2.8.2-0.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 990dd808<br />
Preparing... &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;########################################### [100%]<br />
&nbsp; &nbsp;1:dkim-milter &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;########################################### [100%]</div></div>
<p>Once you have installed DKIM you have to create the public and private keys.  Do this using the <em>dkim-genkey.sh</em> shell script.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[root@sender1 dkim]# sh /usr/share/doc/dkim-milter-2.8.2/dkim-genkey.sh -r -d yourdomain.com</div></div>
<p>By running this script, 2 files will be generated; <strong>default.txt</strong>: the public key which gets published via DNS; <strong>default.private</strong>: private key used for signing the emails.</p>
<p>Move the private key to the dkim directory and secure it.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[root@sender1 dkim]# mv default.private /etc/mail/dkim/default.key.pem<br />
[root@sender1 dkim]# chmod 600 /etc/mail/dkim/default.key.pem<br />
[root@sender1 dkim]# chown dkim-milt.dkim-milt /etc/mail/dkim/default.key.pem</div></div>
<p>Now create the DNS entries.  The <strong>p=</strong> section is the public key created using the <em>dkim-genkey.sh</em> script.  Don&#8217;t forget to increment the SOA and reload DNS.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">_ssp._domainkey.yourdomain.com &nbsp; &nbsp; &nbsp;TXT t=y; o=-<br />
default._domainkey.yourdomain.com &nbsp; TXT v=DKIM1; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GWETBNiQKBgQC5KT1eN2lqCRQGDX+20I4liM2mktrtjWkV6mW9WX7q46cZAYgNrus53vgfl2z1Y/95mBv6Bx9WOS56OAVBQw62+ksXPT5cRUAUN9GkENPdOoPdpvrU1KdAMW5c3zmGOvEOa4jAlB4/wYTV5RkLq/1XLxXfTKNy58v+CKETLQS/eQIDAQAB</div></div>
<p>The reason for this <strong>peer_list</strong> file is so that the senders know that its ok for them to sign emails relayed via the spooler.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[root@sender1 dkim]# cat /etc/mail/dkim/peer_list <br />
mail.yourdomain.com<br />
spooler.yourdomain.com<br />
sender2.yourdomain.com<br />
1.2.4.7<br />
1.2.4.5<br />
localhost<br />
localhost.localdomain<br />
127.0.0.1</div></div>
<p>Onto the configuring of the system.  It should look something like the following.  I chose to have the port be a local port, but it could be done via a network connection as well.  Ensure you change the <em>SIGNING_DOMAIN</em> variable and be sure to note the <em>EXTRA_ARGS</em> variable and where <em>PEER_LIST</em> is used.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[root@sender1 dkim]# cat /etc/sysconfig/dkim-milter <br />
# Default values<br />
<br />
USER=&quot;dkim-milt&quot;<br />
PORT=&quot;local:/var/run/dkim-milter/dkim.sock&quot;<br />
SIGNING_DOMAIN=&quot;yourdomain.com&quot;<br />
SELECTOR_NAME=&quot;default&quot;<br />
KEYFILE=&quot;/etc/mail/dkim/default.key.pem&quot;<br />
SIGNER=yes<br />
VERIFIER=yes<br />
CANON=simple<br />
SIGALG=rsa-sha1<br />
REJECTION=&quot;bad=r,dns=t,int=t,no=a&quot;<br />
<br />
PEER_LIST=&quot;/etc/mail/dkim/peer_list&quot;<br />
<br />
EXTRA_ARGS=&quot;-h -l -D -i ${PEER_LIST} -I ${PEER_LIST}&quot;</div></div>
<p>Let&#8217;s start up dkim.  Since it is a daemon running separately from Postfix, running it and restarting it won&#8217;t affect mail (yet).</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[root@sender1 dkim]# /etc/init.d/dkim-filter start</div></div>
<p>And it&#8217;s finally time for Postfix.  You need to add 2 simple lines to your Postfix <strong>main.cf</strong>.  These 2 lines should match the <em>PORT</em> variable in the <strong>dkim-milter.conf</strong> sysconfig file.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">smtpd_milters = local:/var/run/dkim-milter/dkim.sock<br />
non_smtpd_milters = local:/var/run/dkim-milter/dkim.sock</div></div>
<p>Now you&#8217;re asking yourself, how do I test this?  The easy answer is to use a Gmail account.  When you receive an email, click on the <em>show details</em> link on the right hand side of the screen (to the left of the time).  If you have performed this sequence correctly, you will see a line that says:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">signed-by &nbsp; yourdomain.com</div></div>
<p>Another way to test the success of this is to view the source of the email.  You should have some lines that look similar to this:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">X-DKIM: Sendmail DKIM Filter v2.8.2 sender1.yourdomain.com 75866730012<br />
DKIM-Signature: v=1; a=rsa-sha1; c=simple/simple; d=yourdomain.com;<br />
&nbsp; &nbsp; s=default; t=1239981026; bh=+NNkD6jOlYKtY2AIGNRToH2tkm0=;<br />
&nbsp; &nbsp; h=Date:List-Help:List-Subscribe:List-Unsubscribe:List-Owner:<br />
&nbsp; &nbsp; &nbsp;List-Post:From:Reply-To:To:Subject:MIME-Version:Content-Type:<br />
&nbsp; &nbsp; &nbsp;Message-Id;<br />
&nbsp; &nbsp; b=MrjXBShjNexWy62fC4Uu7xS3Hxav+cHtqIBzwMlcufadsffLtW9KmF5sO58+yHjyy<br />
&nbsp; &nbsp; &nbsp;I3SiX0TNyEbvXtSHvRKm9z630zDiN0dxVXGqhgEfdklaj4jlkfhR6GrsRgzW2YOW6/9<br />
&nbsp; &nbsp; &nbsp;sKFnz214AkhAPrFBD30hNmZfRfY75v5q94FnGDUo=</div></div>
<p>Congratulations, you have a working DKIM installation.</p>


<p>Related posts:<ol><li><a href='http://eric.lubow.org/2010/mail/a-few-words-about-setting-up-postfix-multi-instance/' rel='bookmark' title='A Few Words About Setting Up Postfix Multi Instance'>A Few Words About Setting Up Postfix Multi Instance</a></li>
<li><a href='http://eric.lubow.org/2009/spam/deploying-amavisd-logwatch/' rel='bookmark' title='Deploying Amavisd-logwatch'>Deploying Amavisd-logwatch</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://eric.lubow.org/2009/mail/setting-up-dkim-and-postfix/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

