您的位置:首页 > 编程语言 > Python开发

使用Python发送邮件

2017-11-21 15:53 423 查看
不带附件的方式发送邮件,代码如下:
#!/usr/bin/python
#coding:utf8

from email.mime.text import MIMEText
from email.header import Header
from email.utils import formataddr
import smtplib

def mail():

###定义SMTP服和器信息###
from_addr = "13357110502@163.com"
password = "PASSWORD"
smtp_server = "smtp.163.com"

# 单个不需要使用列表
to_addr = ["270142877@qq.com", "yan.yu@gogen.com.cn"]

# 定义邮件的内容,类型(类型可以是plain or html等)和字符编码
msg = MIMEText('你好:\n    这是一封Python测试邮件', 'plain', 'utf-8')

# 定义发件人的姓名,需要要进行格式化操作
msg["From"] = formataddr(["余雁", from_addr])

# 如果收件人只有1个的话可以定义发件的姓名,如果发件人较多又想实现显示姓名的话,可以对发件人进行循环来实现群发
#msg["To"] = formataddr(["小王", to_addr])

# 对列表转换成字符串,每个元素用逗号分隔
msg["To"] = ",".join(to_addr)

# 定义邮件的主题
msg["Subject"] = Header("Python测试邮件", "utf-8")

# No SSL
#server = smtplib.SMTP(smtp_server, 25)

# Use SSL
server = smtplib.SMTP_SSL(smtp_server, 465)

# 发送的日志输出
#server.set_debuglevel(1)

# 登录到SMTP
server.login(from_addr, password)

# 发送邮件
server.sendmail(from_addr, to_addr, msg.as_string())

# 退出
server.quit()

if __name__ == "__main__":
mail()
运行结果如下图所示:




发送带附件的邮件,代码如下:
#!/usr/bin/python
#coding:utf8

from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.utils import formataddr
import smtplib

def mail():

###定义SMTP服和器信息###
from_addr = "13357110502@163.com"
password = "Passw0rd"
smtp_server = "smtp.163.com"

# 单个不需要使用列表
to_addr = ["270142877@qq.com", "yan.yu@gogen.com.cn"]

# 创建一个带附件的实例
msg = MIMEMultipart()
msg.attach(MIMEText('你好:\n    这是一封Python测试邮件', 'plain', 'utf-8'))
msg["From"] = formataddr(["余雁", from_addr])
msg["To"] = ",".join(to_addr)
msg["Subject"] = Header("Python测试邮件", "utf-8")

###info.txt是本地的路径,att1代表第1个附件###
att1 = MIMEText(open("./info.txt", "rb").read(), "base64", "utf-8")
att1["Content-Type"] = 'application/octet-stream'
# filename是在邮件里面显示的名称
att1["Content-Disposition"] = 'attachment; filename="123.txt"'
msg.attach(att1)

###第2个附件,以此类推###
att2 = MIMEText(open("info.txt", "rb").read(), "base64", "utf-8")
att2["Content-Type"] = 'application/octet-stream'
att2["Content-Disposition"] = 'attachment; filename="aaa.txt"'
msg.attach(att2)

# No SSL
#server = smtplib.SMTP(smtp_server, 25)

# Use SSL
server = smtplib.SMTP_SSL(smtp_server, 465)

# 发送的日志输出
#server.set_debuglevel(1)

# 登录到SMTP
server.login(from_addr, password)

# 发送邮件
server.sendmail(from_addr, to_addr, msg.as_string())

# 退出
server.quit()

if __name__ == "__main__":
mail()
运行结果如下图所示:


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  加密 邮件 附件