howto_gmail_fetchmail_and_procmail.txt (23009B)
1 2 making a backup of my gmail account with fetchmail and procmail 3 4 Gentle introduction to email terminology 5 6 In this post I’ll be talking about procmail, fetchmail and mutt. 7 Three programs to read and backup emails … Wait, three programs just to 8 read emails !? None sens ! 9 Well, actually it makes perfect sens: to read an email on your computer 10 with your favorite email client, you need to follow these steps: 11 1. grab the email from your email provider (connect and download) 12 2. filter/process is the email (in which mailbox do we store it – 13 possibly the spam mailbox, or your regular inbox) 14 3. read it 15 16 For each of these steps, the following jargon is used: 17 * when you download your email, you are using a mail transfer agent 18 i.e. [11]MTA 19 * when filtering/processing it, you are using a mail delivery agent 20 i.e. [12]MDA 21 * and finally when reading it, you are using a mail user agent 22 i.e. [13]MUA 23 24 Weird ? Not really if you know the UNIX philosophy: each program does 25 one 26 thing, but it does it well (Yeah, I know: sounds like a real cliche). 27 28 When you use thunderbird or outlook, you are using a MTA, MDA and MUA 29 at the 30 same time. I will not talk about mail submission agent 31 [14]MSA that is in charge of sending the email you wrote: this is out 32 of scope :-). 33 34 Ok, now let’s go back to the purpose of this post: backing up my gmail 35 account. 36 37 the big plan 38 39 So, given the previous steps described above, I will: 40 * use fetchmail as my MTA to connect to gmail and retrieve my emails 41 * use procmail as my MDA to store the content in the various 42 mailboxes 43 * read it on mutt, yes mutt is my MUA 44 45 step 1: retrieving mail with fetchmail 46 47 configuring my gmail account 48 49 google provides access to my email using [15]POP3 or [16]IMAP. 50 51 I will retrieve my email using POP3, google provides interesting 52 features for it. The one I am interested in is located at settings -> 53 forward and pop/imap -> POP download. 54 Here I select “Enable POP for all mail (even mail that’s already been 55 downloaded)”: it will allow me to download all my emails, including the 56 ones I already did read. 57 WARNING: be sure to select “When messages are accessed with POP – 58 keep gmail’s copy in inbox” otherwise, gmail will remove your 59 downloaded email 60 from your account – which is not my intent. 61 62 I also select, in the same page, enabling IMAP, so I can read my emails 63 from everywhere using the IMAP protocol which allows me to view my 64 emails from 65 anywhere while keeping them on the server i.e. I browse them, when I 66 finish reading my mail, it’s still there on the server: be sure to 67 check [17]IMAP wikipedia entry. 68 69 I download them only for backup purpose and use POP3 for that. 70 71 Do not forget to save the changes you made to your google account … 72 73 dealing with gmail server security 74 75 Access to my account is encrypted (a good thing) hence I need to setup 76 some security before beeing able to download some emails. 77 SSL as used by google, requires you to download some credentials from 78 a certificate authority; it is used to authenticate google server i.e. 79 making sure you really are connecting to google and not to some random 80 (and possibly malicious) server. 81 82 First, I need to retrieve the certificate of the CA used by google: 83 # wget -O Equifax_Secure_Certificate_Authority.pem https://www.geotrust.com/reso 84 urces/root_certificates/certificates/Equifax_Secure_Certificate_Authority.cer 85 86 and convert it to something that can actually be used by our beloved 87 ssl tools: 88 # openssl x509 -in Equifax_Secure_Certificate_Authority.pem -fingerprint -subjec 89 t -issuer -serial -hash -noout 90 91 I now store it where they can latter be referenced and checked. Since I 92 am always setting up workstations when moving from one workplace to 93 another, I store that kind of information in the UNIX account that has 94 been given to me: 95 # mkdir ~/.certificates 96 # mv Equifax_Secure_Certificate_Authority.pem ~/.certificates 97 98 Now I make them available to the various programs I use: 99 # c_rehash ~/.certificates 100 101 On opensolaris c_rehash is not available (I don’t know why). It’s a 102 perl script and I found a version using google code [18]here. 103 104 cut and paste this code into a file named c_rehash and execute it: 105 # cd ~ 106 # perl c_rehash .certificates 107 Doing .certificates/ 108 Equifax_Secure_Certificate_Authority.pem => 594f1775.0 109 110 This is it for the security part, SSL credentials are now ready to be 111 used by fetchmail. 112 113 configuring fetchmail for POP access 114 115 my gmail account is something like: 116 * user ‘vodoom@gmail.com’ 117 * pop3 server is ‘pop.gmail.com’ 118 119 my local settings are: 120 * user on my machine is ‘ppereira’ 121 * my google certificate is located at ‘~/.certificates’ (see previous 122 step) 123 * mda to be used is ‘procmail’ (more on that later) 124 125 The corresponding fetchmail configuration (to be stored in 126 ~/.fetchmailrc): 127 set daemon 600 128 poll pop.gmail.com with proto POP3 and options no dns 129 user 'vodoom@gmail.com' there is 'ppi' here 130 options keep ssl sslcertck sslcertpath '~/.certificates' 131 mda '/usr/bin/procmail -d %T' 132 133 For more details about these options, see [19]fetchmail’s manual. 134 135 configuring procmail for delivery 136 137 spam filtering ? 138 139 Note that there is no spam filtering configuration here: since this 140 setup is only for my gmail account, I rely on gmail spam filter to take 141 care of those. 142 If you need a spam filtering setup, you may want to have a look at 143 http://wiki.apache.org/spamassassin/UsedViaProcmail. 144 145 managing my mailing lists 146 147 I use the TO_ recipe rule of procmail: I do not use the list-id header, 148 it is more covenient for me as explained 149 in http://www.ii.com/internet/robots/procmail/qs/#alt2TO. 150 Procmail recipes are matching rules associated with a mailbox (yes, I 151 am over simplifying). 152 For example, here is a simple recipe: 153 :0: 154 * ^TO_zfs-discuss@opensolaris.org 155 osol-zfs 156 157 :0: is the delivery options, in my case I want locking when accessing 158 to the inbox (that’s the second ‘:’) 159 160 * ^TO_zfs-discuss@opensolaris.org 161 means that we want to match messages that were sent 162 to zfs-discuss@opensolaris.org 163 One can use regular expressions and special matching rules e.g. ^From 164 to create a matching rule. 165 166 osol-zfs tells procmail to store this email in the mailbox ‘osol-zfs’ 167 168 here are my recipes to match the mailing lists I am subscribed to: 169 :0: 170 * ^TO_zfs-discuss@opensolaris.org 171 osol-zfs 172 173 :0: 174 * ^TO_perf-discuss@opensolaris.org 175 osol-perf 176 177 :0: 178 * ^TO_opensolaris-code@opensolaris.org 179 osol-code 180 181 :0: 182 * ^TO_opensolaris-announce@opensolaris.org 183 osol-announce 184 185 :0: 186 * ^TO_indiana-discuss@opensolaris.org 187 osol-indiana 188 189 :0: 190 * ^TO_ogb-discuss@opensolaris.org 191 osol-board 192 193 :0: 194 * ^TO_eeepc-discuss@opensolaris.org 195 osol-eeepc 196 197 :0: 198 * ^TO_crypto-discuss@opensolaris.org 199 osol-crypto 200 201 :0: 202 * ^TO_xvid-devel@xvid.org 203 xvid-devel 204 205 :0: 206 * ^TO_users@crater.dragonflybsd.org 207 dragonfly-bsd 208 209 All those recipes are stored in their own file: rc.mailing-lists. 210 This file will be included from a ‘master’ file, the main .procmailrc 211 file. 212 The .procmailrc file looks like: 213 # Directory for storing procmail configuration and log files 214 # You can name this variable anything you like, for example 215 # PROCMAILDIR, or don't set it (but then don't refer to it!) 216 PROCMAIL_DIR=$HOME/procmail 217 SHELL=/bin/sh 218 219 # LOGFILE should be specified ASAP so everything below it is logged 220 LOGFILE=$PROCMAIL_DIR/procmail.log 221 222 # where are the various mailboxes stored ? 223 # note that this is *not* the location of the system email 224 # this is where I want my mailboxes to be stored by procmail i.e. the 225 # destination after filtering 226 MAILDIR=$HOME/mail 227 228 # recipes/filters are included from here 229 INCLUDERC=$PROCMAIL_DIR/rc.mailing-lists 230 INCLUDERC=$PROCMAIL_DIR/rc.banking 231 232 Now that procmail is setup, time to retrieve some emails: 233 # fetchmail -vk 234 File /export/home/ppi/.fetchmailrc must have no more than -rwx--x--- (0710) perm 235 issions. 236 237 oops I forgot to setup the proper permissions for the .fetchmailrc 238 file, 239 let’s fix that: 240 # chmod 710 .fetchmailrc 241 242 Running it again, and failing again for a very different reason, from 243 my logfile in ~/fetchmail/fetchmail.log: 244 fetchmail: starting fetchmail 6.3.8 daemon 245 fetchmail: 6.3.8 querying pop.gmail.com (protocol POP3) at Thu Jan 28 00:06:43 2 246 010: poll started 247 fetchmail: getaddrinfo("pop.gmail.com","pop3s") error: service name not availabl 248 e for the specified socket type 249 fetchmail: Try adding the --service option (see also FAQ item R12). 250 fetchmail: POP3 connection to pop.gmail.com failed: Bad file number 251 fetchmail: 6.3.8 querying pop.gmail.com (protocol POP3) at Thu Jan 28 00:06:43 2 252 010: poll completed 253 fetchmail: Query status=2 (SOCKET) 254 fetchmail: sleeping at Thu Jan 28 00:06:43 2010 for 600 seconds 255 256 hum, fetchmail is looking for the port number corresponding to the 257 ‘pop3s’ service. AFAIK, on my opensolaris box I don’t have such service 258 configured: 259 # grep -i pop3s /etc/services 260 # 261 262 To connect to gmail I have to manually setup use the port number 263 corresponding to ‘pop3s’, as suggested by fetchmail in the log: 264 'fetchmail: Try adding the --service option (see also FAQ item R12).' 265 so here I go again: 266 # fetchmail -vk --service 995 267 now from my fetchmail log I can see: 268 fetchmail: 6.3.8 querying pop.gmail.com (protocol POP3) at Fri Jan 29 00:15:07 2 269 010: poll started 270 fetchmail: Trying to connect to 74.125.93.111/995...connected. 271 fetchmail: Issuer Organization: Google Inc 272 fetchmail: Issuer CommonName: Google Internet Authority 273 fetchmail: Server CommonName: pop.gmail.com 274 fetchmail: pop.gmail.com key fingerprint: 92:73:17:4C:34:4B:68:F7:B2:17:71:42:0D 275 :7F:9F:33 276 fetchmail: POP3< +OK Gpop ready for requests from 70.31.248.56 8pf4635265qwj.1 277 fetchmail: POP3> CAPA 278 fetchmail: POP3< +OK Capability list follows 279 fetchmail: POP3< USER 280 fetchmail: POP3< RESP-CODES 281 fetchmail: POP3< EXPIRE 0 282 fetchmail: POP3< LOGIN-DELAY 300 283 fetchmail: POP3< X-GOOGLE-VERHOEVEN 284 fetchmail: POP3< UIDL 285 fetchmail: POP3< . 286 fetchmail: POP3> USER vodoom@gmail.com 287 fetchmail: POP3< +OK send PASS 288 fetchmail: POP3> PASS * 289 fetchmail: POP3< +OK Welcome. 290 fetchmail: POP3> STAT 291 fetchmail: POP3< +OK 354 21544383 292 fetchmail: POP3> LAST 293 fetchmail: POP3< -ERR Not supported 294 fetchmail: Not supported 295 fetchmail: POP3> UIDL 296 fetchmail: POP3< +OK 297 fetchmail: POP3< 1 GmailIdfbe952ed20bfe97 298 fetchmail: POP3< 2 GmailIdfc26b09f74e3775 299 fetchmail: POP3< 3 GmailIdfc6f980243d2a13 300 fetchmail: POP3< 4 GmailId1043d10888f8ed70 301 ... 302 fetchmail: POP3< 354 GmailId10e7b3433c301f94 303 fetchmail: POP3< . 304 fetchmail: 354 messages for vodoom@gmail.com at pop.gmail.com (21544383 octets). 305 fetchmail: POP3> LIST 1 306 fetchmail: POP3< +OK 1 1694617 307 fetchmail: POP3> RETR 1 308 fetchmail: POP3< +OK message follows 309 fetchmail: reading message vodoom@gmail.com@pop.gmail.com:1 of 354 (1694617 octe 310 ts) 311 ... 312 313 Yes ! This is working :-) 314 315 So now my gmail account is backed up. From time to time I run my 316 fetchmail script, and it downloads the new emails that are not yet 317 backed up. 318 If like me you have thousands of emails waiting to be download, be 319 patient, as emails are not downloaded in a single connection: each 320 connection will download hundreds of emails, fetchmail will have to 321 reconnect to download the rest. This is fine, that’s why I setup the 322 daemon mode in fetchmail :-). 323 324 Ok now I have to access my emails with IMAP, but thats another post :-) 325 326 enjoy and share. 327 328 Share this: 329 330 * [20]StumbleUpon 331 * [21]Digg 332 * [22]Reddit 333 * 334 335 Like this: 336 337 [23]Like 338 Be the first to like this post. 339 __________________________________________________________________ 340 341 About this entry 342 343 You’re currently reading “making a backup of my gmail account with 344 fetchmail and procmail,” an entry on my core dump is your sigfault 345 346 Published: 347 9 February, 2010 / 12:40 am 348 349 Category: 350 [24]configuration, [25]email, [26]unix 351 352 Tags: 353 [27]backup, [28]email, [29]fetchmail, [30]gmail, [31]procmail 354 __________________________________________________________________ 355 356 No comments yet 357 358 [32]Jump to comment form | [33]comment rss [?] | [34]trackback uri 359 [35][?] 360 361 Leave a Reply [36]Cancel reply 362 363 Enter your comment here... 364 365 ____________________________________________________________ 366 ____________________________________________________________ 367 ____________________________________________________________ 368 ____________________________________________________________ 369 370 Fill in your details below or click an icon to log in: 371 * 372 * 373 * 374 * 375 376 Gravatar 377 Email (required) (Not published) 378 ____________________ 379 Name (required) 380 ____________________ 381 Website 382 ____________________ 383 WordPress.com Logo 384 385 Please log in to WordPress.com to post a comment to your blog. 386 387 Twitter picture 388 389 You are commenting using your Twitter account. 390 ( [37]Log Out / [38]Change ) 391 Facebook photo 392 393 You are commenting using your Facebook account. 394 ( [39]Log Out / [40]Change ) 395 [41]Cancel 396 397 Connecting to %s 398 399 [ ] Notify me of follow-up comments via email. 400 401 Post Comment 402 __________________________________________________________________ 403 404 Pages 405 406 * [42]About Me 407 * [43]Disclaimer 408 * [44]my configuration files 409 + [45]fetchmailrc 410 + [46]moria256.vim 411 + [47]mutt-gmail.conf 412 + [48]muttrc 413 + [49]procmailrc 414 + [50]vimrc 415 416 Recently 417 418 * [51]11.03 simple and dirty FIX 4.2 parser and decoder 419 * [52]10.13 ion3 repository and patches on bitbucket 420 * [53]08.31 gnu/stubs-32.h: No such file or directory 421 * [54]02.09 making a backup of my gmail account with fetchmail 422 and procmail 423 * [55]11.18 virtualbox: setting up 1680×1050 screen resolution 424 * [56]05.06 xvid on opensolaris 425 * [57]04.05 migrating data from linux to opensolaris and zfs with a 426 mirror setup 427 * [58]03.27 const variable, const pointer and invalid const 428 assignment in c++ 429 * [59]12.28 setting up my workstation: tweaking firefox, mutt and vim 430 * [60]12.16 Multi-core programming and design: tips and tricks 431 432 Monthly Archives 433 434 * [61]November 2010 (1) 435 * [62]October 2010 (1) 436 * [63]August 2010 (1) 437 * [64]February 2010 (1) 438 * [65]November 2009 (1) 439 * [66]May 2009 (1) 440 * [67]April 2009 (1) 441 * [68]March 2009 (1) 442 * [69]December 2008 (2) 443 * [70]October 2008 (1) 444 * [71]September 2008 (2) 445 * [72]July 2008 (1) 446 447 * Blogroll 448 + [73]Adam Leventhal’s Weblog 449 + [74]Alan DuBoff’s Weblog 450 + [75]Alexander Kolbasov’s Weblog 451 + [76]Artima – C++ 452 + [77]C++ Soup! 453 + [78]Code Craft 454 + [79]darren_moffat@blog$ cat /dev/mem | grep /dev/urandom 455 + [80]Eric.Weblog() 456 + [81]Jeff Bonwick’s Blog 457 + [82]Jon Haslam’s Weblog 458 + [83]Kate Gregory’s Blog 459 + [84]Liane Praza’s Weblog 460 + [85]Max Bruning’s weblog 461 + [86]My SysAd Blog — UNIX 462 + [87]Nothing but Unix 463 + [88]Predictable 464 + [89]Rich Teer’s Blog 465 + [90]Simon Phipps, SunMink 466 + [91]Sutter’s Mill 467 + [92]The view from the Engine Room 468 + [93]The View from the Moon 469 + [94]Ulrich Drepper 470 __________________________________________________________________ 471 472 [95]Blog at WordPress.com. | Theme: [96]Hemingway by [97]warpspire. 473 474 [98]Entries RSS [99]Comments RSS 475 476 [100]Follow 477 478 Follow my core dump is your sigfault 479 480 Get every new post delivered to your Inbox. 481 482 Enter email address_ 483 484 Sign me up! 485 [101]Powered by WordPress.com 486 487 References 488 489 Visible links 490 1. http://vodoom.wordpress.com/feed/ 491 2. http://vodoom.wordpress.com/comments/feed/ 492 3. http://vodoom.wordpress.com/2010/02/09/making-a-backup-of-my-gmail-account-with-fetchmail-and-procmail/feed/ 493 4. http://vodoom.wordpress.com/2009/11/18/virtualbox-setting-up-1680x1050-screen-resolution/ 494 5. http://vodoom.wordpress.com/2010/08/31/gnustubs-32-h-no-such-file-or-directory/ 495 6. http://public-api.wordpress.com/oembed/1.0/?format=json&url=http%3A%2F%2Fvodoom.wordpress.com%2F2010%2F02%2F09%2Fmaking-a-backup-of-my-gmail-account-with-fetchmail-and-procmail%2F&for=wpcom-auto-discovery 496 7. http://public-api.wordpress.com/oembed/1.0/?format=xml&url=http%3A%2F%2Fvodoom.wordpress.com%2F2010%2F02%2F09%2Fmaking-a-backup-of-my-gmail-account-with-fetchmail-and-procmail%2F&for=wpcom-auto-discovery 497 8. http://vodoom.wordpress.com/osd.xml 498 9. http://wordpress.com/opensearch.xml 499 10. http://vodoom.wordpress.com/ 500 11. http://en.wikipedia.org/wiki/Mail_transfer_agent 501 12. http://en.wikipedia.org/wiki/Mail_delivery_agent 502 13. http://en.wikipedia.org/w/index.php?title=Mail_user_agent 503 14. http://en.wikipedia.org/wiki/Mail_submission_agent 504 15. http://en.wikipedia.org/wiki/Post_Office_Protocol 505 16. http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol 506 17. http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol 507 18. http://www.google.com/codesearch/p?hl=en#2CnO_mGaYOA/source/openssl-0.9.8.tar.gz|RUDwtLKIcqo/openssl-0.9.8/tools/c_rehash&q=c_rehash 508 19. http://fetchmail.info/fetchmail-man.html 509 20. http://vodoom.wordpress.com/2010/02/09/making-a-backup-of-my-gmail-account-with-fetchmail-and-procmail/?share=stumbleupon 510 21. http://vodoom.wordpress.com/2010/02/09/making-a-backup-of-my-gmail-account-with-fetchmail-and-procmail/?share=digg 511 22. http://vodoom.wordpress.com/2010/02/09/making-a-backup-of-my-gmail-account-with-fetchmail-and-procmail/?share=reddit 512 23. http://vodoom.wordpress.com/2010/02/09/making-a-backup-of-my-gmail-account-with-fetchmail-and-procmail/?like=1&_wpnonce=e70618c7f0 513 24. http://vodoom.wordpress.com/category/configuration/ 514 25. http://vodoom.wordpress.com/category/email/ 515 26. http://vodoom.wordpress.com/category/unix/ 516 27. http://vodoom.wordpress.com/tag/backup/ 517 28. http://vodoom.wordpress.com/tag/email/ 518 29. http://vodoom.wordpress.com/tag/fetchmail/ 519 30. http://vodoom.wordpress.com/tag/gmail/ 520 31. http://vodoom.wordpress.com/tag/procmail/ 521 32. http://vodoom.wordpress.com/2010/02/09/making-a-backup-of-my-gmail-account-with-fetchmail-and-procmail/#comment-form 522 33. http://vodoom.wordpress.com/2010/02/09/making-a-backup-of-my-gmail-account-with-fetchmail-and-procmail/feed/ 523 34. http://vodoom.wordpress.com/2010/02/09/making-a-backup-of-my-gmail-account-with-fetchmail-and-procmail/trackback/ 524 35. http://vodoom.wordpress.com/2010/02/09/making-a-backup-of-my-gmail-account-with-fetchmail-and-procmail/#what-is-trackback 525 36. http://vodoom.wordpress.com/2010/02/09/making-a-backup-of-my-gmail-account-with-fetchmail-and-procmail/#respond 526 37. javascript:HighlanderComments.doExternalLogout( 'twitter' ); 527 38. http://vodoom.wordpress.com/2010/02/09/making-a-backup-of-my-gmail-account-with-fetchmail-and-procmail/ 528 39. javascript:HighlanderComments.doExternalLogout( 'facebook' ); 529 40. http://vodoom.wordpress.com/2010/02/09/making-a-backup-of-my-gmail-account-with-fetchmail-and-procmail/ 530 41. javascript:HighlanderComments.cancelExternalWindow(); 531 42. http://vodoom.wordpress.com/about-paulo/ 532 43. http://vodoom.wordpress.com/about/ 533 44. http://vodoom.wordpress.com/configuration-files/ 534 45. http://vodoom.wordpress.com/configuration-files/fetchmailrc/ 535 46. http://vodoom.wordpress.com/configuration-files/moria256vim/ 536 47. http://vodoom.wordpress.com/configuration-files/mutt-gmailconf/ 537 48. http://vodoom.wordpress.com/configuration-files/muttrc/ 538 49. http://vodoom.wordpress.com/configuration-files/procmailrc/ 539 50. http://vodoom.wordpress.com/configuration-files/vimrc/ 540 51. http://vodoom.wordpress.com/2010/11/03/simple-and-dirty-fix-4-2-decoder/ 541 52. http://vodoom.wordpress.com/2010/10/13/ion3-repository-on-httpbitbucket-orgppianionoverview/ 542 53. http://vodoom.wordpress.com/2010/08/31/gnustubs-32-h-no-such-file-or-directory/ 543 54. http://vodoom.wordpress.com/2010/02/09/making-a-backup-of-my-gmail-account-with-fetchmail-and-procmail/ 544 55. http://vodoom.wordpress.com/2009/11/18/virtualbox-setting-up-1680x1050-screen-resolution/ 545 56. http://vodoom.wordpress.com/2009/05/06/xvid-on-opensolaris/ 546 57. http://vodoom.wordpress.com/2009/04/05/migrating-data-from-linux-to-opensolaris-and-zfs-with-a-mirror-setup/ 547 58. http://vodoom.wordpress.com/2009/03/27/const-variable-cont-pointers-and-invalid-const-assignment-in-c/ 548 59. http://vodoom.wordpress.com/2008/12/28/setting-up-my-workstation-tweaking-firefox-mutt-and-vim/ 549 60. http://vodoom.wordpress.com/2008/12/16/multi-core-programming-and-design-tips-and-tricks/ 550 61. http://vodoom.wordpress.com/2010/11/ 551 62. http://vodoom.wordpress.com/2010/10/ 552 63. http://vodoom.wordpress.com/2010/08/ 553 64. http://vodoom.wordpress.com/2010/02/ 554 65. http://vodoom.wordpress.com/2009/11/ 555 66. http://vodoom.wordpress.com/2009/05/ 556 67. http://vodoom.wordpress.com/2009/04/ 557 68. http://vodoom.wordpress.com/2009/03/ 558 69. http://vodoom.wordpress.com/2008/12/ 559 70. http://vodoom.wordpress.com/2008/10/ 560 71. http://vodoom.wordpress.com/2008/09/ 561 72. http://vodoom.wordpress.com/2008/07/ 562 73. http://blogs.sun.com/ahl/ 563 74. http://blogs.sun.com/aland/ 564 75. http://blogs.sun.com/akolb/ 565 76. http://www.artima.com/ 566 77. http://blog.cplusplus-soup.com/ 567 78. http://codecraft.info/ 568 79. http://blogs.sun.com/darren/ 569 80. http://software.ericsink.com/ 570 81. http://blogs.sun.com/bonwick/ 571 82. http://blogs.sun.com/jonh/ 572 83. http://www.gregcons.com/KateBlog/ 573 84. http://blogs.sun.com/lianep/ 574 85. http://mbruning.blogspot.com/ 575 86. http://www.mysysad.com/ 576 87. http://unix-news.blogspot.com/ 577 88. http://blogs.sun.com/sch/ 578 89. http://richteer.blogspot.com/ 579 90. http://blogs.sun.com/webmink/ 580 91. http://herbsutter.wordpress.com/ 581 92. http://blogs.sun.com/barts/ 582 93. http://blogs.sun.com/dp/ 583 94. http://udrepper.livejournal.com/ 584 95. http://wordpress.com/?ref=footer 585 96. http://theme.wordpress.com/themes/hemingway/ 586 97. http://warpspire.com/hemingway 587 98. http://vodoom.wordpress.com/feed/ 588 99. http://vodoom.wordpress.com/comments/feed/ 589 100. javascript:void(0) 590 101. http://wordpress.com/signup/?ref=lof 591 592 Hidden links: 593 103. http://vodoom.wordpress.com/2010/02/09/making-a-backup-of-my-gmail-account-with-fetchmail-and-procmail/#comment-form-guest 594 104. http://vodoom.wordpress.com/2010/02/09/making-a-backup-of-my-gmail-account-with-fetchmail-and-procmail/#comment-form-wordpress 595 105. http://vodoom.wordpress.com/2010/02/09/making-a-backup-of-my-gmail-account-with-fetchmail-and-procmail/#comment-form-load-service:Twitter 596 106. http://vodoom.wordpress.com/2010/02/09/making-a-backup-of-my-gmail-account-with-fetchmail-and-procmail/#comment-form-load-service:Facebook