0.说明

    

    通过一个实例来了解smtplib的使用,这里使用网易邮箱来向QQ邮箱发送邮件。

    由于发件人需要连接邮件服务器才能发送邮件,下面提供163邮箱常用的收件、发件服务器的地址和端口:

类型服务器名称服务器地址
SSL协议端口号非SSL协议端口号
收件服务器
POPpop.163.com995110
收件服务器IMAPimap.163.com993143
发件服务器SMTPsmtp.163.com465/99425

    Ok,SMTP的经测试可以使用,其它的有需要的也可以试试。




1.邮件发送实例代码与测试


    参考了刘天斯老师书本上的代码,自己也做了一些修改,方便自己理解和记忆,如下:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import smtplib

Server = "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邮箱中会收到下面这样一封邮件:

wKioL1i61NvAxSfbAAAtju9pIs4903.png




2.下一步要做什么


    从上面收到的邮件可以看到,邮件的内容比较简陋,都是纯文本的,可以考虑定制邮件的格式从而使邮件的内容更加多样化。




3.参考资料


  • 《Python自动化运维:技术与最佳实践》

  • smtplib源代码