如何发送电子邮件 python发送邮件的步骤和方法

1. 简介
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议, 它是一组用于传送邮件的规则,由它来控制信件的中转方式 。
Python 的 smtplib 模块对 smtp 协议进行了简单的封装,提供了一种方便的途径发送电子邮件 。
2. 配置发送服务器2.1 简介在本篇文章中,使用 QQ 邮箱的 SMTP 服务发送邮件,需要对 QQ 邮件发送进行配置 。
假设用户的信息如下:

  • 用户邮件地址,假设为 zhangsan@qq.com
  • 使用 SMTP 服务的密码,需要对 QQ 邮件进行配置后获取,注意:不是登录 QQ 邮箱的密码
2.2 进入设置界面需要在 PC 端通过浏览器登录 QQ 邮箱:
  • 点击设置,进入邮箱设置
  • 在邮箱设置中,点击账户

如何发送电子邮件 python发送邮件的步骤和方法

文章插图
2.2 设置 POP3/SMTP 发送服务器在账户设置的 TAB 页面中,选择 “开启服务:POP3/SMTP 服务” 。
如何发送电子邮件 python发送邮件的步骤和方法

文章插图
2.3 通过短信开启 POP3/SMTP 服务选择 \"开启服务:POP3/SMTP 服务\"后,系统提示通过发送短信开启 POP3/SMTP 服务
如何发送电子邮件 python发送邮件的步骤和方法

文章插图
2.4 获取 SMTP 服务密码按照系统提示操作后,系统会给出使用 SMTP 服务的密码,请记住该服务密码,在后续的小节中会使用该密码 。
如何发送电子邮件 python发送邮件的步骤和方法

文章插图
3. 发送文本格式的邮件【如何发送电子邮件 python发送邮件的步骤和方法】import smtplibfrom email.header import Headerfrom email.mime.text import MIMEText代码块123
  • 导入 smtplib 用于发送邮件
  • 导入类 Header 和 MIMEText 用于构造邮件
fromAddr =\'zhangsan@qq.com\'password = \'password for smtp\'toAddr =\'zhangsan@qq.com\'subject = \'hello world\'content = \'你好,世界\'代码块12345
  • fromAddr 为发送邮件地址
  • toAddr 为目的邮件地址,设置成与发送邮件地址相同,表示向自己发送一封邮件
  • password 是使用 SMTP 服务的密码,不是 QQ 邮箱的登录密码,请查看第 2 小节
  • subject 是邮件标题
  • content 是邮件内容
def makeMail():mail = MIMEText(content, \'plain\', \'utf-8\')mail[\'From\'] = Header(fromAddr, \'utf-8\')mail[\'To\'] = Header(toAddr, \'utf-8\')mail[\'Subject\'] = Header(subject, \'utf-8\')return mail代码块123456
  • 在第 1 行,函数 makeMail() 根据 fromAddr、toAddr、subject、content 构造一封邮件
  • 在第 2 行,使用 MIMEText 构造一个文本格式的邮件MIMEText 的第二个参数 plain,表示邮件的内容是文本格式
  • 在第 3 行,构造邮件头 From
  • 在第 4 行,构造邮件头 To
  • 在第 5 行,构造邮件头 Subject
def sendMail(mail):server = smtplib.SMTP_SSL(\"smtp.qq.com\")server.login(fromAddr, password)server.sendmail(fromAddr, toAddr, mail.as_string())server.quit()代码块12345
  • 在第 1 行,函数 sendMail 调用 SMTP 服务发送邮件 mail
  • 在第 2 行,获取 SMTP 服务器,使用 QQ 发送服务
  • 在第 3 行,登录 SMTP 服务
  • 在第 4 行,通过 SMTP 服务器发送服务
mail = makeMail()sendMail(mail)print(\'发送邮件成功\')代码块123运行程序,在 QQ 邮箱中收到邮件:
如何发送电子邮件 python发送邮件的步骤和方法

文章插图
4. 发送 html 格式的邮件import smtplibfrom email.header import Headerfrom email.mime.text import MIMEText代码块123
  • 导入 smtplib 用于发送邮件
  • 导入类 Header 和 MIMEText 用于构造邮件
fromAddr =\'zhangsan@qq.com\'password = \'password for smtp\'toAddr =\'zhangsan@qq.com\'subject = \'hello with html content\'content = \'Please click imooc\'代码块12345
  • fromAddr 为发送邮件地址
  • toAddr 为目的邮件地址,设置成与发送邮件地址相同,表示向自己发送一封邮件
  • password 是使用 SMTP 服务的密码,不是 QQ 邮箱的登录密码,请查看第 2 小节
  • subject 是邮件标题
  • content 是邮件内容,例子中使用 HTML 格式的文本
def makeMail():mail = MIMEText(content, \'html\', \'utf-8\')mail[\'From\'] = Header(fromAddr, \'utf-8\')mail[\'To\'] = Header(toAddr, \'utf-8\')mail[\'Subject\'] = Header(subject, \'utf-8\')return mail代码块123456