日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

利用Python编辑一个发送邮件的脚本

發(fā)布時(shí)間:2025/3/20 python 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用Python编辑一个发送邮件的脚本 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

相關(guān)參數(shù)

""" 可選參數(shù) text 郵件正文內(nèi)容(文本) html 郵件附件內(nèi)容(HTML) image_path 郵件附件內(nèi)容(圖片路徑) att_path 郵件附件內(nèi)容(文件路徑) """ text = "Hi!你好啊!!\nHow are you?\nHere is the link you wanted:\nhttp://www.baidu.com" html = """ <html> <head></head> <body> <p>Hi!<br> How are you?<br> Here is the <a href="http://www.baidu.com">link</a> you wanted.<br> </p> </body> </html> """ image_path = "F:\爬蟲\IMGS\image1.jpg" att_path = r'F:\Python開發(fā)工程師測(cè)試題(一).docx'""" 必要參數(shù) username 郵箱登陸賬號(hào) password 郵箱密碼 subject 郵件主題 server 郵件服務(wù)器 sender 發(fā)送方 receiver 收件人(列表格式,多個(gè)收件人) """ username = "xxxx9.com" password = 'xxxx subject = '測(cè)試郵件' server = 'smtp.139.com' sender = 'xxx@139.com' receiver = ['xxx@qq.com']

一:腳本的配置類

import smtplib, time, os from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.image import MIMEImage from email.mime.base import MIMEBase from email import encodersclass Settings():#腳本配置類def __init__(self, username, password, subject, server, sender, receiver):self.server = serverself.sender = senderself.receiver = receiverself.username = usernameself.password = passwordself.subject = subject

二:構(gòu)造郵件MIMEMultipart對(duì)象

''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' class Message():# 構(gòu)造郵件對(duì)象MIMEMultipart對(duì)象_msg = MIMEMultipart('mixed')def __init__(self, set, content):# 下面的主題,發(fā)件人,收件人,日期是顯示在郵件頁面上的。self._msg['Subject'] = set.subjectself._msg['From'] = set.username# 收件人為多個(gè)收件人,通過join將列表轉(zhuǎn)換為以;為間隔的字符串self._msg['To'] = ";".join(set.receiver)self._msg['Date'] = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))self.content = contentdef get_msg(self):for info in self.content.get_content():if not info: continueself._msg.attach(info)return self._msg

三:構(gòu)造郵件正文及附件內(nèi)容

class EmailContent():def __init__(self, text=None, html=None, image_path=None, att_path=None):self.text = textself.image = image_pathself.html = htmlself.att_path = att_pathdef get_filename(self, path):import osreturn os.path.basename(path)@propertydef get_text(self):# 構(gòu)造文本if not self.text:return Noneself.text_plain = MIMEText(self.text, 'plain', 'utf-8')return self.text_plain@propertydef get_image(self):# 構(gòu)造圖片鏈接if not self.image:return Noneif not os.path.exists(self.image):raise FileNotFoundError("Not Find This File")filename = self.get_filename(self.image)self.sendimagefile = open(r'%s' % self.image, 'rb').read()self.image = MIMEImage(self.sendimagefile)self.image.add_header('Content-Disposition', 'attachment', filename=('gbk', '', filename))return self.image@propertydef get_html(self):# 構(gòu)造htmlif not self.html:return Noneself.text_html = MIMEText(self.html, 'html', 'utf-8')self.text_html["Content-Disposition"] = 'attachment; filename="TEXT/HTML.html"'return self.text_html@propertydef get_att(self):"# 構(gòu)造附件"if not self.att_path:return Noneif not os.path.exists(self.att_path):raise FileNotFoundError("Not Find This File")filename = self.get_filename(self.att_path)self.att = MIMEBase('application', 'octet-stream')self.att.set_payload(open(self.att_path, 'rb').read())self.att.add_header('Content-Disposition', 'attachment', filename=('gbk', '', filename))encoders.encode_base64(self.att)return self.attdef get_content(self):

四:郵件發(fā)送服務(wù)類

''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' class Smtp():_smtp = smtplib.SMTP()def __init__(self, set, msg):self.set = setself.msg = msgdef _connect(self):self._smtp.connect(self.set.server)def _login(self):self._smtp.login(self.set.username, self.set.password)def _sendmail(self):self._smtp.sendmail(self.set.sender, self.set.receiver, self.msg.as_string())def _quit(self):self._smtp.quit()def start(self):self._connect()self._login()self._sendmail()self._quit()

五:主程序

if __name__ == '__main__':set = Settings(username, password, subject, server, sender, receiver)content = EmailContent(text=text, image_path=image_path, att_path=att_path, html=html)message = Message(set, content)msg = message.get_msg()smtp = Smtp(set, msg)smtp.start()

總結(jié)

以上是生活随笔為你收集整理的利用Python编辑一个发送邮件的脚本的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。