python3 发送邮件示例代码

#! /usr/local/bin/python3
# -*- coding: utf-8 -*-
import time
import smtplib
from email.mime.text import MIMEText            # 基本邮件模块
from email.header import Header                 # 带html内容模块
from email.mime.multipart import MIMEMultipart	# 带附件模块

# 第三方 SMTP 服务
mail_host = "smtp.126.com"  # SMTP服务器
mail_user = "ja***"  # 用户名
mail_pass = "YHD**********AHJ"  # 密码(这里的密码不是登录邮箱密码,而是授权码)
   
sender = 'ja***@126.com'  # 发件人邮箱
receivers = ['1230*****@qq.com']  # 接收人邮箱,这里是数组,可以发送给多个邮箱




# ========== 以下是带附件邮件 ==========
mail_msg = '''
<p>Python 邮件发送测试...</p>
<p><a href="http://www.runoob.com">这是一个链接</a></p>
'''
message = MIMEMultipart()
message['From'] = "{0}".format(sender)
message['To'] = ",".join(receivers)
 
title = '发送时间为:{0}'.format(time_now)  # 邮件主题
subject = 'Python SMTP 邮件测试'
message['Subject'] = Header(subject, 'utf-8')
#邮件正文内容
message.attach(MIMEText('这是菜鸟教程Python 邮件发送测试……', 'plain', 'utf-8'))
# 构造附件1,传送当前目录下的 1.txt 文件
att1 = MIMEText(open('1.txt', 'rb').read(), 'base64', 'utf-8')
att1["Content-Type"] = 'application/octet-stream'
# 这里的filename可以任意写,写什么名字,邮件中显示什么名字
att1["Content-Disposition"] = 'attachment; filename="1_2.txt"'
message.attach(att1)


# ========== 以下是HTML邮件 ==========
# mail_msg = '''
# <p>Python 邮件发送测试...</p>
# <p><a href="http://www.runoob.com">这是一个链接</a></p>
# '''
# message = MIMEText(mail_msg, 'html', 'utf-8')
# message['From'] = "{0}".format(sender)
# message['To'] = ",".join(receivers)
 
# title = '发送时间为:{0}'.format(time_now)  # 邮件主题
# message['Subject'] = title


# ========== 以下是纯文本邮件 ==========
# content = '这里是邮件正文,Hello World!\n第一封群发邮件哦\n'
# message = MIMEText(content, 'plain', 'utf-8')  # 内容, 格式, 编码
# message['From'] = "{0}".format(sender)
# message['To'] = ",".join(receivers)

# title = '6-10发送时间为:{0}'.format(time_now)  # 邮件主题
# message['Subject'] = title


# ========== 发送邮件部分 ==========
# try:
#     smtpObj = smtplib.SMTP_SSL(mail_host, 465)  # 启用SSL发信, 端口一般是465
#     # smtpObj = smtplib.SMTP(mail_host, 25)  # 非加密接口, 端口一般是25
#     smtpObj.login(mail_user, mail_pass)  # 登录验证
#     smtpObj.sendmail(sender, receivers, message.as_string())  # 发送
#     print("邮件发送成功")
# except smtplib.SMTPException as e:
#     print(e)

3.7.4下测试通过

这里有4个组成部分,附件部分、html部分、标准邮件部分三选一,如果都开,就是后赋值的生效。

最后发送邮件部分是必须开的,否则发不出去:)

发送邮件用了两个接口一个是25,一个是465,可以按照喜好选用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值