自动给多个邮箱地址按预定格式发送包含附件的邮件

发送邮件一般使用SMTP协议,使用Python的内置模块email即可生成邮件内容信息,内置模块smtplib可以登录并发送邮件。

SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。

SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。

增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。

使用脚本发送邮件先要知道邮箱服务器地址和端口,如以下就是网易163免费邮箱相关服务器信息:

https://help.mail.163.com/faqDetail.do?code=d7a5dc8471cd0c0e8b4b8f4f8e49998b374173cfe9171305fa1ce630d7f67ac22dc0e9af8168582a

自动给多个邮箱地址按预定格式发送包含附件的邮件的Python代码:

上述代码运行后,无须登录自己的邮箱,即可给多个设定好的邮箱地址发送邮件。

附代码:

from email.mime.text import MIMEText

from email.mime.multipart import MIMEMultipart

from email.header import Header

import smtplib # SMTP即简单邮件传输协议

# 1 邮件信息

email_from = "wwuhnwu@163.com"

sender = email_from

email_to = ["wwuhnwu@163.com","2283517648@qq.com"]

receiver = ",".join(email_to)

password = "******"

email_subject = "Update data from wwu"

body = """

Dear all,

Attached please find!

"""

annex_path = "D:\Users\wwuhnwu01\Desktop\website.rar"

annex_name = "website.rar"

# 2 生成邮件(email模块)

message = MIMEMultipart()

message.attach(MIMEText(body,'plain','utf-8'))

message['From'] = Header(sender,'utf-8')

message['To'] = Header(receiver,'utf-8')

message['Subject'] = Header(email_subject,'utf-8')

att1 = MIMEText(open(annex_path, 'rb').read(), 'base64', 'utf-8')

att1["Content-Type"] = 'application/octet-stream'

att1["Content-Disposition"] = 'attachment; filename=' + annex_name

message.attach(att1)

# 3 发送邮件(smtplib模块)

try:

smtp = smtplib.SMTP_SSL("smtp.163.com",465)

smtp.login(email_from,password)

print("login successfully!")

smtp.sendmail(email_from,email_to,message.as_string())

print("sent successfully!")

smtp.quit

except Exception:

print(traceback.print_exc())

print("sending failed!")

-End-

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180903A0229300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

同媒体快讯

扫码关注腾讯云开发者

领取腾讯云代金券