python发邮件

Posted 嘟嘟小冰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python发邮件相关的知识,希望对你有一定的参考价值。

使用自动发送邮件功能,添加附件(图片,文件等)

# hanbb
# come on!!!
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
from email.mime.image import MIMEImage
import os

# 基础信息构建
msg_from = \'填发送的邮箱\'    # 发送方邮箱
passwd = \'填密码\'           # 填入发送方邮箱的授权码(密码)
msg_to = \'填收件的邮箱\'      # 收件人邮箱

# 邮件对象
msg = MIMEMultipart()
msg[\'From\'] = Header(\'程序小冰\')   # 收件显示的标题
msg[\'To\'] = Header(msg_to)

subject = "python邮件测试"         # 主题
msg[\'Subject\'] = Header(subject,\'utf-8\')

### 邮件中添加链接 和 图片
mail_msg = """
<p>Python 邮件发送测试...</p>
<p><a href="http://www.csindex.com.cn/">中证指数</a></p>
<p>图片演示:</p>
<p><img src="cid:image1"></p>
"""
msg.attach(MIMEText(mail_msg, \'html\', \'utf-8\'))

# 指定图片为当前目录
fp = open("C:\\\\Users\\\\HBB\\\\Desktop\\\\中证1208.png", \'rb\')
msgImage = MIMEImage(fp.read())
fp.close()
# 定义图片 ID,在 HTML 文本中引用
msgImage.add_header(\'Content-ID\', \'<image1>\')
msg.attach(msgImage)
###

# 邮件正文是MIMEText:
content = "这是程序小冰使用python程序发送的文件"
msg.attach(MIMEText(content, \'plain\', \'utf-8\'))

# 首先是xlsx类型的附件
xlsxpath = \'C:\\\\Users\\\\HBB\\\\Desktop\\\\质量分数.xlsx\'
xlsxpart = MIMEApplication(open(xlsxpath, \'rb\').read())
xlsxpart.add_header(\'Content-Disposition\', \'attachment\', filename=\'{}\'.format(os.path.basename(xlsxpath)))
msg.attach(xlsxpart)

# jpg类型的附件
jpgpath = \'C:\\\\Users\\\\HBB\\\\Desktop\\\\mayi.png\'
jpgpart = MIMEApplication(open(jpgpath, \'rb\').read())
jpgpart.add_header(\'Content-Disposition\', \'attachment\', filename=\'{}\'.format(os.path.basename(jpgpath)))
msg.attach(jpgpart)

# mp3类型的附件
# mp3part = MIMEApplication(open(\'kenny.mp3\', \'rb\').read())
# mp3part.add_header(\'Content-Disposition\', \'attachment\', filename=\'benny.mp3\')
# msg.attach(mp3part)

# pdf类型附件
# part = MIMEApplication(open(\'foo.pdf\', \'rb\').read())
# part.add_header(\'Content-Disposition\', \'attachment\', filename="foo.pdf")
# msg.attach(part)

try:
    s = smtplib.SMTP_SSL("smtp.163.com", 465)
    s.login(msg_from, passwd)
    s.sendmail(msg_from, msg_to, msg.as_string())
    print("发送成功")

except smtplib.SMTPException:
    print("发送失败")

finally:
    s.quit()

 参看文件:

https://www.cnblogs.com/yufeihlf/p/5726619.html

http://www.runoob.com/python/python-email.html

以上是关于python发邮件的主要内容,如果未能解决你的问题,请参考以下文章

Python发邮件

python编码发邮件

python 发邮件

python中关于发邮件的示例

49. Python 发邮件

Python向多人发送、抄送带附件的邮件(含详细代码)