本文主要讨论Python如何使用sendEmail发(垃圾)邮件?
Linux用户常用sendmail发送电子邮件,当您看了本文后可能会改用sendEmail去发送邮件了,呵呵。
1 下载sendEmail
sendEmail有Linux和windows版本软件包,依据自己的平台选择下载好了
登录上边的网址找到:
Download
- Official Release: sendEmail-v1.56.tar.gz (29kb Sep 29th, 2009) Changelog Screen Shot
Windows Download:
Free sendEmail.exe for Windows. To use simply run sendEmail.exe from a console / command line.
sendEmail-v156-notls.zip (677kb Sep 29th, 2009) No TLS support
sendEmail-v156.zip (1.4mb Sep 29th, 2009) TLS supported
RPM Package: sendEmail rpm - 选择适合自己的下载好了
2 安装sendEmail
sendEmail不需要安装直接解压到某目录即可直接使用。
(Linux用户) tar -zxvf sendEmail-x-y-z.tar.gz
本文选择windows平台sendEmail软件包,下载后解压到c:\sendEmail目录下。
3 sendEmail命令帮助
sendEmail软件是命令行软件,需要在Dos(shell)下执行使用。
[jeapedu]# sendEmail --help sendEmail-1.56 by Brandon Zehm <caspian@dotconf.net> Synopsis: sendEmail -f ADDRESS [options] Required: -f ADDRESS from (sender) email address * At least one recipient required via -t, -cc, or -bcc * Message body required via -m, STDIN, or -o message-file=FILE Common: -t ADDRESS [ADDR ...] to email address(es) -u SUBJECT message subject -m MESSAGE message body -s SERVER[:PORT] smtp mail relay, default is localhost:25 Optional: -a FILE [FILE ...] file attachment(s) -cc ADDRESS [ADDR ...] cc email address(es) -bcc ADDRESS [ADDR ...] bcc email address(es) -xu USERNAME username for SMTP authentication -xp PASSWORD password for SMTP authentication Paranormal: -b BINDADDR[:PORT] local host bind address -l LOGFILE log to the specified file -v verbosity, use multiple times for greater effect -q be quiet (i.e. no STDOUT output) -o NAME=VALUE advanced options, for details try: --help misc -o message-content-type=<auto|text|html> -o message-file=FILE -o message-format=raw -o message-header=HEADER -o message-charset=CHARSET -o reply-to=ADDRESS -o timeout=SECONDS -o username=USERNAME -o password=PASSWORD -o tls=<auto|yes|no> -o fqdn=FQDN Help: --help the helpful overview you're reading now --help addressing explain addressing and related options --help message explain message body input and related options --help networking explain -s, -b, etc --help output explain logging and other output options --help misc explain -o options, TLS, SMTP auth, and more
测试用例
我(sender@163.com)要给他/她(receiver@sina.com)发电子邮件,邮件的主题是"subjectTitle",邮件的内容是说句“hello”,带了附件attach.txt文件,我邮箱sender@163.com的密码是“123456”,则使用sendEmail的命令如下:
sendEmail -f sender@163.com -t receiver@sina.com -s smtp.163.com -xu sender@163.com -xp 123456 -u subjectTitle -m hello -a attach.txt
注:本示例在windows平台下测试,需手动使用dos即运行->cmd->cd c:/sendEmail目录(假设下载文件解压到本目录)
-t 后指定发给谁
-s 指定发送smtp服务器,本例用163的smtp服务器
-xu 后需指定smtp服务器上的授权帐号(sender@163.com),
实际上就是用参数xu后边的邮箱来真正发送邮件
-xp 后则是smtp服务器上的授权帐号(sender@163.com)所对应的密码,
smtp服务器要检查合法性
-u 邮件主题
-m 邮件正文内容
-a 邮件携带附件(attach.txt)
各位网友在自我测试时,需对应替换。比如想用“se@163.com(密码abcdef)”发邮件给"re@sina.com",邮件主题“hello”,邮件内容"world",携带附件"b.txt",我来替换一下如下:
sendEmail -f se@163.com -t re@sina.com -s smtp.163 -xu se@163.com -xp abcdef -u hello -m world -a b.txt
4 编写发送邮件程序
写个Python程序来用用吧:发几百封邮件给他/她/Ta.程序名sm.py,请保存在sendEmail.exe同一目录下。
import os from = "sender@163.com" to = "reveiver@sina.com" subject = "say hello" msg = "I like you" attachfile = "a.txt" c = 0 while c < 498: os.system("sendEmail.exe -f "+from+" -t "+to+" -xu "+from+" -xp 123456 -u "+subject+" -s smtp.163.com -a "+attachfile+" -m "+msg) c = c + 1据说163邮件一天最多发500封信,之后。。。呵呵,何时解封时间不确定,我看可以多申请几个163邮箱。
在sendEmail目录下执行python sm.py即可发499封邮件给他/她/Ta.
5. 怎样使发送邮件内容为Html的呢?
首先在sm.py文件所在目录下创建一个html文件,例如a.html,代码如下:
<html> <body> <B>测试网页</B><br> <a href= "http://www.csdn.net"><font color = 'blue' size = '7'><u>CSDN就是牛!</u></font></a> </body> </html>
接着,需要在sendEmail命令行里增加几个可以发送html文本作为邮件正文内容的参数选项。
-o message-content-type=html -o message-charset=CHARSET -o message-header=HEADER -o message-file=afile
-o message-content-type = html
告诉邮件服务器发送的是html格式邮件内容
-o message-charset = CHARSET
这里不能用utf-8否则邮件内容显示乱码
-o message-file=某文件
是用来指定携带的那个html网页文件作为邮件正文, 这样邮件正文里就可以有超级链接了。
最后运行测试。
參考資料
沒有留言:
張貼留言