0.说明
通过一个实例来了解smtplib的使用,这里使用网易邮箱来向QQ邮箱发送邮件。
由于发件人需要连接邮件服务器才能发送邮件,下面提供163邮箱常用的收件、发件服务器的地址和端口:
类型 | 服务器名称 | 服务器地址 | SSL协议端口号 | 非SSL协议端口号 |
收件服务器 | POP | pop.163.com | 995 | 110 |
收件服务器 | IMAP | imap.163.com | 993 | 143 |
发件服务器 | SMTP | smtp.163.com | 465/994 | 25 |
Ok,SMTP的经测试可以使用,其它的有需要的也可以试试。
1.邮件发送实例代码与测试
参考了刘天斯老师书本上的代码,自己也做了一些修改,方便自己理解和记忆,如下:
#!/usr/bin/env python# -*- coding:utf-8 -*-import smtplibServer = "smtp.163.com" # 163邮箱的SMTP服务器地址Subject = "Test email from Python" # 邮件主题To = "429191942@qq.com" # 收件人From = "xpleaf@163.com" # 发件人Text = "This is the email send by xpleaf, from xpleaf@163.com!" # 邮件内容Body = '\r\n'.join(("From: %s" % From, "To: %s" % To, "Subject: %s" % Subject, "", Text))s = smtplib.SMTP() # 实例化一个SMTP类s.connect(Server, '25') # 连接SMTP服务器s.starttls() # 开启TLS(安全传输)模式s.login('xpleaf@163.com', '********') # 登陆到163邮件服务器s.sendmail(From, [To], Body) # 发送邮件s.quit() # 退出
执行上面的脚本,在QQ邮箱中会收到下面这样一封邮件:
2.下一步要做什么
从上面收到的邮件可以看到,邮件的内容比较简陋,都是纯文本的,可以考虑定制邮件的格式从而使邮件的内容更加多样化。
3.参考资料
《Python自动化运维:技术与最佳实践》
smtplib源代码