今天认识到了.Net平台的SmtpClient,了解的同时也想试着通过脚本自动发邮件。而完成这些就只需要SmtpClient和可爱的IronPython。
   实现代码如下:
from System.Text import Encoding
from System.Net import NetworkCredential
from System.Net.Mail import MailMessage,MailAddress,MailPriority,SmtpClient
mailMsg = MailMessage()
mailMsg.From = MailAddress("benjielin@gmail.com")
mailMsg.To.Add("benjielin@hotmail.com")
mailMsg.Subject = "Testing"
mailMsg.Body = "Hello, this is sent by IronPython script"
mailMsg.BodyEncoding = Encoding.UTF8
mailMsg.IsBodyHtml = False
smtp = SmtpClient()
smtp.Credentials = NetworkCredential("benjielin", "123456")
# The following three parameters depend on specification of the email server provider
smtp.Port = 587
smtp.Host = "smtp.gmail.com"
smtp.EnableSsl = True
# It takes time and SendAsync is a better choice in case of non blocking requirement
try:
        smtp.Send(mailMsg)
        print "Succeeded"    
except exception:
        print "Failed"

   代码很简单吧,先通过MailMessage组好邮件,然后通过SmtpClient发送。如果哪天你想跟谁开个玩笑,不妨让这个程序运行几千甚至几万次,相信对方的邮箱会有点吃不消的感觉,嘻嘻。当然这只是应用之一,对于如下情形应该也是比较轻松就可以实现的:
1 没有安装Outlook等邮件客户端的情况下发邮件。
2 自动定期发邮件。比如有时候需要利用邮件定期报告进展。利用一个定时任务,并让邮件内容来自某个进展的数据源就可以实现了。
3 在不登陆邮件网站的情况下发邮件。
……