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 smtplib
- Server = "smtp.163.com" # 163邮箱的SMTP服务器地址
- Subject = "Test email from Python" # 邮件主题
- To = "" # 收件人
- From = "" # 发件人
- Text = "This is the email send by xpleaf, from !" # 邮件内容
- 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(, '********') # 登陆到163邮件服务器
- s.sendmail(From, [To], Body) # 发送邮件
- s.quit() # 退出
执行上面的脚本,在 QQ 邮箱中会收到下面这样一封邮件:
2. 下一步要做什么
从上面收到的邮件可以看到,邮件的内容比较简陋,都是纯文本的,可以考虑定制邮件的格式从而使邮件的内容更加多样化。
3. 参考资料
来源: http://www.bubuko.com/infodetail-1969270.html