第十二章:email-smtplib:简单邮件传输协议客户-发送email消息

本文介绍如何使用Python的smtplib库通过SMTP协议发送电子邮件。通过实例演示了如何配置发件人、收件人、邮件主题及正文,以及如何利用MIMEText格式化邮件内容。

第13章 email
13.1 smtplib:简单邮件传输协议客户
smtplib包括一个SMTP类,可以用来与邮件服务器通信发送邮件。
说明:后面的例子中,email地址。主机名和IP地址都被故意修改为没有实际意义。除此以外,这些脚本展示的命令和响应序列都是准确的。

13.1.1 发送email消息
SMTP最常用的一种用法就是连接到一个邮件服务器并发送一个消息。可以把邮件服务器主机名和端口传递到构造函数,也可以显式调用connect()。一旦连接,可以调用sendmail()并提供信封参数和消息体。消息文本要完整并遵循RFC 5322,因为smtplib根本不会修改内容或首部。这说明,调用者需要增加From和To首部。

import smtplib
from email.mime.text import MIMEText

_user = "发件人"
_pwd  = "授权码"     # 需要在QQ邮箱中开启SMTP服务,并获得授权码。
_to   = "收件人"

msg = MIMEText("This is the body of the message.")
msg["Subject"] = "Simple test message"
msg["From"]    = _user
msg["To"]      = _to

try:
    s = smtplib.SMTP_SSL("smtp.qq.com", 465)
    s.login(_user, _pwd)
    s.sendmail(_user, _to, msg.as_string())
    s.quit()
    print("Success!")
except smtplib.SMTPException as e: 
    print ("Falied,%s" %e) 

这个例子中还打开了调试,以便显示客户与服务器之间的通信。否则,这个示例根本不会产生任何输出。

Success!

sendmail()的第二个参数(即接收者)会作为一个列表传递。这个列表中可以包括任意多个地址,消息将被逐一传送到各个地址。由于信封消息与消息首部是分开的,所以将地址包含在方法参数中而不是置于消息首部中,这样可以实现暗送(Blind Carbon-Copy,BCC)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值