<?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>John&#039;s Tidbits &#187; mail</title>
	<atom:link href="http://inodes.org/tag/mail/feed/" rel="self" type="application/rss+xml" />
	<link>http://inodes.org</link>
	<description>Moo - Development, Trouble-shooting and Random thoughts...</description>
	<lastBuildDate>Thu, 19 Apr 2012 10:15:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>Vim and spell checking</title>
		<link>http://inodes.org/2008/02/08/vim-and-spell-checking/</link>
		<comments>http://inodes.org/2008/02/08/vim-and-spell-checking/#comments</comments>
		<pubDate>Fri, 08 Feb 2008 01:48:22 +0000</pubDate>
		<dc:creator>johnf</dc:creator>
				<category><![CDATA[FOSS]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[mutt]]></category>
		<category><![CDATA[spelling]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://inodes.org/blog/2008/02/08/vim-and-spell-checking/</guid>
		<description><![CDATA[I just discovered Vim has spell checking. No more having to manually spell check in mutt with ispell when writing emails, Hurray!! In your .vimrc file simply add setlocal spell spelllang=en_au Note: By default vim only installs en_us spell files. If you are running debian then there is a vim-spellfiles package. There is an ubuntu [...]]]></description>
			<content:encoded><![CDATA[<p>I just discovered Vim has spell checking. No more having to manually spell check in mutt with ispell when writing emails, Hurray!!</p>
<p>In your .vimrc file simply add</p>
<pre>
setlocal spell spelllang=en_au
</pre>
<p><strong>Note:</strong> By default vim only installs en_us spell files. If you are running debian then there is a <em>vim-spellfiles</em> package. There is an ubuntu <a href="https://bugs.launchpad.net/ubuntu/+source/vim/+bug/66878">bug</a> to do something about this as well. Since I&#8217;m using ubuntu I simply grabbed the <em>en</em> directory from ftp://ftp.vim.org/pub/vim/runtime/spell/ and dumped it in <em>/usr/share/vim/vim71/spell</em></p>
<p>Vim will now highlight words it thinks are misspelled. The magic incarnations you will need are:</p>
<p>z= &#8211; Suggest alternatives for the word<br />
zg &#8211; Add word to dictionary<br />
zw &#8211; Remove word from dictionary</p>
]]></content:encoded>
			<wfw:commentRss>http://inodes.org/2008/02/08/vim-and-spell-checking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DSPAM case sensitivity</title>
		<link>http://inodes.org/2007/05/11/dspam-case-sensitivity/</link>
		<comments>http://inodes.org/2007/05/11/dspam-case-sensitivity/#comments</comments>
		<pubDate>Fri, 11 May 2007 06:30:01 +0000</pubDate>
		<dc:creator>johnf</dc:creator>
				<category><![CDATA[FOSS]]></category>
		<category><![CDATA[dspam]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://inodes.org/blog/2007/05/11/dspam-case-sensitivity/</guid>
		<description><![CDATA[I use DSPAM to handle my spam checking and have been quite happy with it as it normally delivers >99.9% hit rate. In the last few weeks the amount of spam in my INBOX had been getting progressively worse to the point where I noticed no spam whatsoever was making its way into my spam [...]]]></description>
			<content:encoded><![CDATA[<p>I use <a href="http://www.nuclearelephant.com">DSPAM</a> to handle my spam checking and have been quite happy with it as it normally delivers >99.9% hit rate.</p>
<p>In the last few weeks the amount of spam in my INBOX had been getting progressively worse to the point where I noticed no spam whatsoever was making its way into my spam folder.</p>
<p>Looking through my logs I eventually found the following</p>
<pre>
May 10 10:03:03 fozzie dspam[30287]: Unable to find a valid signature. Aborting.
May 10 10:03:03 fozzie dspam[30287]: process_message returned error -5.  dropping message.
</pre>
<p>I process my spam by using a mutt macro which bounces emails to johnf-spam at inodes dot org. This then passes the email to DSPAM which reclassifies it. It does this by looking at a header it added to the email.</p>
<pre>
X-DSPAM-Signature: 464400d0223642194712985
</pre>
<p>However these were appearing in my INBOX as</p>
<pre>
X-Dspam-Signature: 464400d0223642194712985
</pre>
<p>I use procmail and a perl script to pre-process some of my email and it uses <strong>Mail::Internet</strong> which in turn uses <strong>Mail::Header</strong>. It bestows this piece of wisdom upon the world.</p>
<pre>
# attempt to change the case of a tag to that required by RFC822. That
# being all characters are lowercase except the first of each word. Also
# if the word is an `acronym' then all characters are uppercase. We decide
# a word is an acronym if it does not contain a vowel.

sub _tag_case
{
</pre>
<p>Now I can&#8217;t see where in <a href="http://www.ietf.org/rfc/rfc0822.txt">RFC822</a> it specifies this but in section B.2 it does specify</p>
<pre>
Upper and lower case are not dis-tinguished when comparing field-names.
</pre>
<p>So on that basis I choose to blame DSPAM and applied the following diff</p>
<pre>
diff -ur dspam-3.8.0.orig/src/dspam.c dspam-3.8.0/src/dspam.c
--- dspam-3.8.0.orig/src/dspam.c        2006-12-13 02:33:45.000000000 +1100
+++ dspam-3.8.0/src/dspam.c     2007-05-11 16:25:11.000000000 +1000
@@ -2165,7 +2165,7 @@
           while(node_header != NULL) {
             head = (ds_header_t) node_header->ptr;
             if (head->heading &#038;&#038;
-                !strcmp(head->heading, "X-DSPAM-Signature")) {
+                !strcasecmp(head->heading, "X-DSPAM-Signature")) {
               if (!strncmp(head->data, SIGNATURE_BEGIN,
                            strlen(SIGNATURE_BEGIN)))
               {
</pre>
<p>Now to work out the best way to push that upstream.</p>
]]></content:encoded>
			<wfw:commentRss>http://inodes.org/2007/05/11/dspam-case-sensitivity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

