Python SMTP 发送邮件

163邮箱

163邮箱不太稳定,所以Demo中只发送文本信息。
图片、附件使用QQ邮箱发送。

import smtplib

# 163邮箱的服务器
host = 'smtp.163.com'

# 端口
port = 465

# 发件人的邮箱
senderEmail = 'Mr_Qian_Ives@163.com'

# 发件人邮箱的授权码(自己百度QQ邮箱授权码,教程满天飞)
password = 'xxxxx'

# 发件人的称呼
name = "钱先生"

# 拼接昵称   钱先生 <Mr_Qian_Ives@163.com>
name = name + " <" + senderEmail + ">"

# 收件人的邮箱
receivers = ['1356227919@qq.com', '990509820@qq.com']

# 邮件标题
title = '标题'

# 邮件内容
info = '正文'

# 拼接发送的内容
msg = '\n'.join(['From: {}'.format(name), 'Subject: {}'.format(title), '', info])

# 发送的邮件使用加密形式
try:
    smtp = smtplib.SMTP_SSL(host=host, port=port)
    # 登录账号
    res = smtp.login(user=senderEmail, password=password)

    # 发送邮件
    smtp.sendmail(from_addr=senderEmail, to_addrs=receivers, msg=msg.encode())

    # 退出
    smtp.quit()
    print('发送成功')
except:
    print('发送失败')

QQ邮箱(邮件附带附件、html、图片)

import smtplib
from email.header import Header
from email.mime.image import MIMEImage
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import os

# qq邮箱的服务器
host = 'smtp.qq.com'

# 端口
post = 465

# 发件人的邮箱
senderEmail = '1356227919@qq.com'

# 发件人邮箱的授权码(自己百度QQ邮箱授权码,教程满天飞)
password = 'xxxx'

# 发件人的称呼
name = "钱先生"

# 拼接昵称   钱先生 <1356227919@qq.com>
name = name + " <" + senderEmail + ">"

# 收件人的邮箱
receivers = ['990509820@qq.com']

# 邮件标题
title = '标题'

# 邮件正文
info = "正文"

# related类型,把其它内容以内嵌资源的方式存储在邮件中
message = MIMEMultipart('related')

# 设置发件人的信息
message['From'] = Header(name, 'utf-8')

# 设置邮件标题
message['Subject'] = Header(title, 'utf-8')

# html引入图片
# alternative类型,超文本内容
alt = MIMEMultipart('alternative')

# msgAlternative加入message
message.attach(alt)

# html代码,使用img标签引入照片,照片的id在下方。
html = """
<p>""" + info + """</p>
<p><img src="cid:image1"></p>
"""

# 把html代码加入alt
alt.attach(MIMEText(html, 'html', 'utf-8'))

# html中图片的路径
bgPath = "/Users/apple/Downloads/蓝牙下载/Screenshot_20201124-111814_WeChat.jpg"

# 读取图片
mim = MIMEImage(open(bgPath, 'rb').read())

# 设置图片的ID,HTML文本中引用该ID
mim.add_header('Content-ID', '<image1>')

# mim加入message
message.attach(mim)

# 上传附件
# 上传附件的路径
upPath = "/Users/apple/PycharmProjects/pythonTest/SMTP/123.txt"

# 上传附件的名字
upPathName = os.path.basename(upPath);

# 打开文件
att1 = MIMEText(open(upPath, 'rb').read(), 'base64', 'utf-8')
att1["Content-Type"] = 'application/octet-stream'

# 这里的'upPathName',可以任意写,写什么,邮件中附件的名字就显示什么名字。
att1.add_header("Content-Disposition", "attachment", filename=("utf-8", "", upPathName))

# 添加附件
message.attach(att1)

# 发送的邮件使用加密形式
try:
    smtp = smtplib.SMTP_SSL(host=host, port=post)
    # 登录账号
    res = smtp.login(user=senderEmail, password=password)
    
    # 发送邮件
    smtp.sendmail(from_addr=senderEmail, to_addrs=receivers, msg=message.as_string())
    
    # 退出
    smtp.quit()
    print('发送成功')
except:
    print('发送失败')

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值