I have been wanting to serve my Yahoo! mail so I could access it from my various machines around home/work, and YahooPops looked like the perfect solution. I had several of the problems mentioned around the web and also saw that some of the questions had been answered in a "find it in the forum" way... hopefully this list of steps will help those trying to get this to work!
First, don't use the precompiled 0.50 binary with static libraries. I and (apparently) many others can't get it to log in properly even using your correct username & password. What you'll see in the log is:
[ Fri May 21 04:08:24 2004 ] Starting POP3 session for "xxx".
[ Fri May 21 04:08:24 2004 ] <xxx> Password received from client.
[ Fri May 21 04:08:24 2004 ] <xxx> Connecting to Yahoo...
[ Fri May 21 04:08:24 2004 ] <xxx> Login failed
[ Fri May 21 04:08:24 2004 ] <xxx> Login to Yahoo Mail failed.
[ Fri May 21 04:14:12 2004 ] Starting POP3 session for "xxx".
[ Fri May 21 04:14:12 2004 ] <xxx> Password received from client.
[ Fri May 21 04:14:12 2004 ] <xxx> Connecting to Yahoo...
[ Fri May 21 04:14:12 2004 ] <xxx> Login failed
[ Fri May 21 04:14:12 2004 ] <xxx> Login to Yahoo Mail failed.
OK - now that you're set on compiling it yourself
1. Download and install the source from here and the mimepp supplement from here.
2. Download and install the required libraries. I use Debian personally, so this is accomplished by:
- Code: Select all
# apt-get install openssl libcurl libcurl2-dev libxml libxml2-dev
3. You need to allow the ypcompile script to see the libxml library. This is done by:
- Code: Select all
# cd $(dirname `which xml2-config`)
# ln -s xml2-config xml-config
4. Untar the two files from step 1. I used /tmp:
- Code: Select all
$ tar xjpvf yahoopops-0.5-linux-src.tar.bz2
$ tar xzpvf mimepp-1.3.3.tar.gz
5. Due to a compile error I was getting, you need to make a couple of changes to the "WebBrowser.cpp" file. There are two ways to do this:
5a - Apply the patchfile below.
5b - Edit it yourself
- Code: Select all
struct HttpPost *formpost=NULL;
struct HttpPost *lastptr=NULL;
- Code: Select all
struct curl_httppost *formpost=NULL;
struct curl_httppost *lastptr=NULL;
6. (OPTIONAL) I didn't want my yahoopopsrc and locale stuff in the '/usr/local/share' directory. I wanted it in '/etc/yahoopops' instead. I also wanted the log file to go to '/var/log' like normal log files do
- Code: Select all
# mkdir /etc/yahoopops
# touch /etc/yahoopops/yahoopops.log
# chmod 664 /etc/yahoopops/yahoopops.log
# chgrp -R users /etc/yahoopops
# mv /etc/yahoopops/yahoopops.log /var/log
# ln -s /var/log/yahoopops.log /etc/yahoopops/yahoopops.log
Whew! Done with that...
7. Now start compiling:
- Code: Select all
# cd /tmp/YP5
# ./ypcompile
(for Debian, I answered "y" to the default binary location,
"y" for the default library location,
"n" and "/etc/yahoopops" for the config files,
"/usr" for the root directory of the openssl installation,
"/usr" for the root directory of the curl installation,
and "/tmp/mimepp" for the root directory of the mimepp sources)
8. To test, edit your yahoopopsrc file (/etc/yahoopops/yahoopopsrc) and change the option "LEAVE_MAILS_UNREAD_ON_YAHOO" to "1". This should leave the original copy of the messages on the server until you're satisfied with your results.
9. Run and enjoy!!
10. (OPTIONAL) To get fetchmail to work, I used a ~/.fetchmailrc file like:
# Configuration created Thu May 27 15:10:36 2004 by fetchmailconf
set postmaster "<your linux userid>"
set bouncemail
set no spambounce
set properties ""
poll 127.0.0.1 with proto POP3 port 5058
user '<email_id>@yahoo.com' there with password '<your pw>' is '<your linux userid>' here
P.S. I saw that some people were having problems with upper/lower-case POP commands as shown here, but fetchmail doesn't seem to have this problem so I didn't investigate it further. I would assume that changing something like 'strstr' to 'stristr' would fix it, but that's just a wild guess without even looking at the code.
I hope this helps some of you!




