H C   S O F T W A R E   L T D

commanderbond cryptosaurus image jdep spambuddy superstopwatch textscape textscape2 utilities xmogrify xql yago

SpamBuddy Mailer daemon

  • Unattended execution
  • Delayed send
  • Split into batches
  • HTML, text, attachments
  • TLS, authentication support

Download: distribution(src etc.) jar only

Spambuddy originally came about (in 2004) because I wanted to send out an invitation to 20 or so people. The mail was supposed to be HTML format, with custom text for each recipient. I soon discovered that my SMTP service provider had strict rules about how many emails you were allowed to send and how often; hence the batch-sending options.

Originally I used the Apache Commons Mail API, since I assumed this would be simpler than the Javamail API which it was supposed to abstract.

This assumption may have been wrong, however. As of December 2006, version 1 of Spambuddy uses Javamail directly, and I think there is less code, and it is more readable. It also now supports TLS.

The reason for this latest update is that I have to send out another invitation :- I guess you can't call a project finished until you resist editing the source code each time you use it.

java -jar spambuddy.jar
 usage: spambuddy options  [text]
 -a <filename(s)>          attachments e.g. /var/logs/log.txt:/var/logs/logs2
                                 .txt
 --batchfield <to|cc|bcc>  field which is split into batches
 --batchinterval <n>       wait n seconds between each send
 --batchsize <n>           send in batches of n
 --bcc <addresses | file>  bcc address(es) abc@efg,gef@efg
 --cc <addresses | file>   cc address(es) abc@efg,gef@efg
 --from <address> *        from address e.g. abc@def.org
 -h,--help                 prints out this usage message
 --host <hostname> *       SMTP host
 --html <file>             html content for email (in addition to text conten
                            t from std.in)
 -p <pass>                 password
 -r <replyto>              replyto
 -s <subject>              subject
 --sendat <time>           send email at specified time, format: [yyyyMMddhh:
                            mm]
 --tls                     Use TLS (encrypt communication with server) defaul
                            t=false
 --to <addresses | file>   to address(es)
 -u <userid>               username

* required options