利用Python发送邮件

利用Python发送邮件,第1张

利用Python发送邮件

Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件。

首先要对邮箱进行设置,这里以QQ邮箱为例:打开QQ邮箱后,选择“设置-账户”,找到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”

开启pop3/smtp服务,并保存该授权码作为密码使用--生成授权码

最后代码如下:

# -*- coding:utf-8 -*-import smtplibfrom email.mime.text import MIMETextfrom email.mime.image import MIMEImagefrom email.mime.multipart import MIMEMultipartclass send_email():    def __init__(self):        self.Host = "smtp.qq.com"                # QQ邮箱服务地址        self.Subject = input("请输入邮件标题:") # 设置邮件标题        self.From = input("请输入发件人地址:")  # 设置发件人邮箱        self.To = input("请输入收件人地址:")    # 设置收件人邮箱(多个用逗号隔开)    # ==========================发送文本====================    # 发送邮件主体到对方的邮箱中    def email_text(self,message):        message_text = MIMEText(_text='<h2 style="color:red;font-size:100px"><a href="http://www.baidu.com">这是一个链接</a></h2>',_subtype='html', _charset='utf-8')        message.attach(message_text)    # ==========================发送图片====================    def email_image(self,message):        image_data = open(file="123456789.jpg", mode="rb")        message_image = MIMEImage(_imagedata=image_data.read(), _subtype="base64", _charset="utf-8")        # 设置文件在附件当中的名字        message_image['Content-disposition'] = 'attachment;filename = "text.jpg"'        image_data.close()        message.attach(message_image)    # ==========================发送附件====================    def email_file(self,message):        file_data = open(file=r"C:UserslenovoDesktopincome.xlsx", mode="rb")        message_file = MIMEText(_text=file_data.read(), _subtype="base64", _charset="utf-8")        # 设置文件在附件当中的名字        message_file['Content-Disposition'] = 'attachment;filename="textfile.xlsx"'        file_data.close()        message.attach(message_file)    # ========================发送邮件======================    def init_email(self):        message["From"] = self.From              # 设置邮件发件人        message["To"] = self.To                   # 设置邮件接收人        message["Subject"] = self.Subject         # 设置邮件标题        # 获取简单邮件传输协议证书        email_client = smtplib.SMTP_SSL(host="smtp.qq.com")        # 设置发件人邮箱的域名和端口        email_client.connect(host="smtp.qq.com", port="465")        # 登陆邮件,权限验证,password为邮箱授权码        result = email_client.login(user=self.From, password="eejjgbvxpzyadhhg")        print("登录结果:", result)        # 发送邮件,from_addr:发送人,to_addrs:收件人,msg:发送的文本        email_client.sendmail(from_addr=self.From, to_addrs=self.To, msg=message.as_string())        # 关闭邮件客户端        email_client.close()if __name__ == '__main__':    # 创建一个邮件对象    message = MIMEMultipart()    email = send_email()            # 调用对象    # email.email_text(message)       # 调用对象的方法    email.email_image(message)    # email.email_file(message)    email.init_email()

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/4807417.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-10
下一篇2022-11-10

发表评论

登录后才能评论

评论列表(0条)

    保存