发送纯文本格式的邮件
import smtplib
from email.mime.text import MIMEText
from email.header import Header
# 第三方 SMTP 服务
mail_host = "smtp.exmail.qq.com" # 设置服务器
mail_user = "tangsq@venpoo.com" # 用户名
mail_pass = "xxxxxx" # 授权码
sender = "tangsq@venpoo.com"
receivers = ['865466036@qq.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
message = MIMEText('汤汤,时间很快,2020了', 'plain', 'utf-8')
message['From'] = Header("26的自己", 'utf-8')
message['To'] = Header("Thomas_tang", 'utf-8')
subject = '迷茫,焦虑'
message['Subject'] = Header(subject, 'utf-8')
try:
server = smtplib.SMTP_SSL(mail_host, 465)
server.login(mail_user, mail_pass)
server.sendmail(sender, receivers, message.as_string())
server.quit() # 关闭连接
print("邮件发送成功")
except smtplib.SMTPException:
print("Error: 无法发送邮件")
![](https://img.haomeiwen.com/i11422128/f7eba36833841e9c.png)
image.png
发送HTML格式的邮件
import smtplib
from email.mime.text import MIMEText
from email.header import Header
# 第三方 SMTP 服务
mail_host = "smtp.exmail.qq.com" # 设置服务器
mail_user = "tangsq@venpoo.com" # 用户名
mail_pass = "XXXXXX" #授权码
sender = "tangsq@venpoo.com"
receivers = ['865466036@qq.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
mail_msg = """
<p>Python 邮件发送测试...</p>
<p><a href="http://www.runoob.com">这是一个链接</a></p>
"""
message = MIMEText(mail_msg, 'html', 'utf-8')
message['From'] = Header("26的自己", 'utf-8')
message['To'] = Header("Thomas_tang", 'utf-8')
subject = '迷茫,焦虑'
message['Subject'] = Header(subject, 'utf-8')
try:
server = smtplib.SMTP_SSL(mail_host, 465)
server.login(mail_user, mail_pass)
server.sendmail(sender, receivers, message.as_string())
server.quit() # 关闭连接
print("邮件发送成功")
except smtplib.SMTPException:
print("Error: 无法发送邮件")
添加附件
import smtplib
from email.header import Header
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
class SMTPServe:
dict = {"qq": "smtp.exmail.qq.com"}
class Email:
def __init__(self, usr_name, usr_pwd, usr_server):
self.usr_name = usr_name
self.usr_pwd = usr_pwd
self.usr_server = usr_server
self.msg = MIMEMultipart() # 多元,可用attach
# 登录
try:
self.smtpObj = smtplib.SMTP_SSL(usr_server, 465)
self.smtpObj.login(usr_name, usr_pwd)
self.__login_fail = True
except smtplib.SMTPException as e:
self.__login_fail = False
print("login fail:" + str(e))
def loginStatus(self):
return self.__login_fail
def setSender(self, sdr_address):
self.msg["From"] = "{}".format(sdr_address)
def setReciever(self, rcr_address):
self.msg["To"] = ",".join(rcr_address)
self.reciever_list = rcr_address
def setSubject(self, title):
self.msg["Subject"] = title
def addPlainContent(self, p_ct):
self.msg.attach(MIMEText(p_ct, "plain", "utf-8"))
def addHtmlContent(self, html):
self.msg.attach(MIMEText(html, "html", "utf-8"))
def addAttachFile(self, file_address):
try:
file_stream = open(file_address, "rb").read()
except:
print("load file fail.")
ath = MIMEApplication(file_stream)
file_name = file_address.split("\\")
ath.add_header('Content-Disposition', 'attachment', filename=file_name[-1])
self.msg.attach(ath)
def sendEmail(self):
try:
self.smtpObj.sendmail(self.usr_name, self.reciever_list, self.msg.as_string())
print("send successfully.")
return True
except smtplib.SMTPException as e:
print("send fail:" + str(e))
return False
if __name__ == "__main__":
sender = 'tangsq@venpoo.com'
receivers = ['865466036@qq.com']
email = Email('tangsq@venpoo.com', '授权码', SMTPServe.dict['qq'])
email.setSender(sender)
email.setReciever(receivers)
email.setSubject("测试")
email.addPlainContent("this is a 附件")
email.addAttachFile(r"C:\Every_day\untitled\257.jpg")
email.sendEmail()
网友评论