SMTP发送纯文本邮件

from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
import smtplib
 
#函数作用是返回重新编码过的邮箱用户名及相应地址
def _format_addr(s):
    name, addr = parseaddr(s)
    return formataddr((Header(name, 'utf-8').encode(), addr))
 
from_addr = input('From: ')#发件地址
password = input('Password: ')#SMTP服务授权码
to_addr = input('To: ')#收件地址
smtp_server = input('SMTP server: ')#SMTP服务地址
 
msg = MIMEText('hello, send by Python...', 'plain', 'utf-8')
#创建MIMEText对象,(第一个参数就是邮件正文,第二个参数是MIME的subtype,传入'plain'表示纯文本,
#最终的MIME就是'text/plain',最后一定要用utf-8编码保证多语言兼容性。)
msg['From'] = _format_addr('Python爱好者 <%s>' % from_addr)#消息(发件人,发件地址)
msg['To'] = _format_addr('管理员 <%s>' % to_addr)#消息(收件人,收件地址)
#msg['To']接收的是字符串而不是list,如果有多个邮件地址,用,分隔即可。
msg['Subject'] = Header('来自SMTP的问候……', 'utf-8').encode()#消息(邮件标题),#如果包含中文,需要通过Header对象进行编码
 
server = smtplib.SMTP(smtp_server, 25)#SMTP服务地址,端口
server.set_debuglevel(1)#打印出和SMTP服务器交互的所有信息
server.login(from_addr, password)#登录SMTP服务器(发件地址,SMTP服务授权码)
server.sendmail(from_addr, [to_addr], msg.as_string())
#发送邮件(发件地址,list列表形式的收件地址,把MIMEText对象变成str)
server.quit()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值