On a general note, why not just copy the spool file locally and then inject it locally? Why spin up an IMAP server just to, in effect, copy /var/spool/mail/neil locally and then run procmail on it?<br><br><div class="gmail_quote">
On Sun, Oct 16, 2011 at 10:39 AM, Neil Watson <span dir="ltr"><<a href="mailto:tlug-neil-8agRmHhQ+n2CxnSzwYWP7Q@public.gmane.org">tlug-neil-8agRmHhQ+n2CxnSzwYWP7Q@public.gmane.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
My goal is to have fetchmail get email from a remote imap server (Dovecot) over ssh. Here's what I have done:<br>
In my remote account I created dovecot.conf:<br>
listen = 127.0.0.1<br>
protocols = imap<br>
ssl = no<br>
mail_location = /var/spool/mail/%u<br>
listen = <a href="http://127.0.0.1:1143" target="_blank">127.0.0.1:1143</a><br></blockquote><div><br>Probably doesn't matter but you have two listen settings there.<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

auth default {<br>
    mechanisms=plain<br>
    passdb pam {<br>
    }       userdb passwd {<br>
    }       user=root<br>
    }   base_dir = /home/neil/tmp/<br>
login_dir = /home/neil<br>
login_user = neil<br>
login_chroot = no<br>
<br>
Install public ssh key to mail server.  Add command to key before<br>
"ssh..."<br>
command="/usr/sbin/dovecot -c /home/neil/dovecot.conf --exec-mail imap",no-port-forwarding,no-agent-forwarding </blockquote><div> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

On client install procmail and fetchmail.  Fetchmailrc:<br>
poll 127.0.0.1 with proto IMAP preauth ssh and port 1143:<br>
    plugin "ssh check-mail > /dev/null"<br>
    mda '/usr/bin/procmail -d %T'<br>
<br>
There seems to be some issues with deleting and fetching that are too random for me to pin down.<br>
fetchmail: IMAP> A0003 EXPUNGE<br>
fetchmail: IMAP< A0003 OK Expunge completed.<br>
fetchmail: IMAP> A0004 SEARCH UNSEEN<br>
fetchmail: IMAP< * SEARCH<br>
fetchmail: IMAP< A0004 OK Search completed (0.000 secs).<br>
3 messages (3 seen) for neil at 127.0.0.1.<br>
skipping message <a href="http://neil-savSHZN5Fh8qMp+WYRx65w@public.gmane.org:1" target="_blank">neil@127.0.0.1:1</a> not flushed<br>
skipping message <a href="http://neil-savSHZN5Fh8qMp+WYRx65w@public.gmane.org:2" target="_blank">neil@127.0.0.1:2</a> not flushed<br>
skipping message <a href="http://neil-savSHZN5Fh8qMp+WYRx65w@public.gmane.org:3" target="_blank">neil@127.0.0.1:3</a> not flushed<br>
fetchmail: IMAP> A0005 LOGOUT<br>
fetchmail: IMAP< * BYE Logging out<br>
fetchmail: IMAP< A0005 OK Logout completed.<br>
fetchmail: 6.3.18 querying 127.0.0.1 (protocol IMAP) at Sat 15 Oct 2011 03:45:23 PM EDT: poll completed<br>
fetchmail: normal termination, status 1<br>
<br>
and this:<br>
neil@pluto:~$ fetchmail -a<br>
3 messages for neil at 127.0.0.1.<br>
reading message <a href="http://neil-savSHZN5Fh8qMp+WYRx65w@public.gmane.org:1" target="_blank">neil@127.0.0.1:1</a> of 3 (600 header octets) (8 body octets) flushed<br>
fetchmail: mail expunge mismatch (0 actual != 1 expected)<br>
fetchmail: client/server synchronization error while fetching from <a href="mailto:neil-savSHZN5Fh8qMp+WYRx65w@public.gmane.org" target="_blank">neil-savSHZN5Fh8qMp+WYRx65w@public.gmane.org</a><br>
fetchmail: Query status=7 (ERROR)<br>
<br>
Any and all suggestions welcome. <br></blockquote><div><br>It seems like there are a ton of automation steps in there without intermediate testing. Do all the constituent parts work individually? For instance, if you ssh into the remote host by hand, forwarding port 1143, and then run dovecot by hand, does that work with fetchmail? How about other IMAP clients?<br>
</div></div><br>