Python基于smtplib協(xié)議實(shí)現(xiàn)發(fā)送郵件
SMTP(Simple Mail Transfer Protocol)即簡單郵件傳輸協(xié)議,它是一組用于由源地址到目的地址傳送郵件的規(guī)則,由它來控制信件的中轉(zhuǎn)方式。
python的smtplib提供了一種很方便的途徑發(fā)送電子郵件。它對smtp協(xié)議進(jìn)行了簡單的封裝。
Python創(chuàng)建 SMTP 對象語法如下:
import smtplib
smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )
參數(shù)說明:
- host: SMTP 服務(wù)器主機(jī)。 你可以指定主機(jī)的ip地址或者域名如: runoob.com,這個(gè)是可選參數(shù)。
- port: 如果你提供了 host 參數(shù), 你需要指定 SMTP 服務(wù)使用的端口號,一般情況下 SMTP 端口號為25。
- local_hostname: 如果 SMTP 在你的本機(jī)上,你只需要指定服務(wù)器地址為 localhost 即可。
代碼如下
#coding=utf-8
"""
===========================
Author:多測師_王sir
Time:2020/5/20 17:24
Wechat:15367499889
Company:上海多測師信息有限公司
===========================
"""
import os
import smtplib
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from common.handleconfig import conf
def send_email(filename, title):
"""
發(fā)送郵件的功能函數(shù)
:param filename: 文件的路徑
:param title: 郵件的主題
:return:
"""
# 第一步:連接郵箱的smtp服務(wù)器,并登錄
smtp = smtplib.SMTP_SSL(host=conf.get("email", "host"), port=conf.getint("email", "port"))
smtp.login(user=conf.get("email", "user"), password=conf.get("email", "pwd"))
# 第二步:構(gòu)建一封郵件
# 創(chuàng)建一封多組件的郵件
msg = MIMEMultipart()
with open(filename, "rb") as f:
content = f.read()
# 創(chuàng)建郵件文本內(nèi)容
text_msg = MIMEText(content, _subtype="html", _charset="utf8")
# 添加到多組件的郵件中
msg.attach(text_msg)
# 創(chuàng)建郵件的附件
report_file = MIMEApplication(content)
report_file.add_header('content-disposition', 'attachment', filename=os.path.split(filename)[-1])
# 將附件添加到多組件的郵件中
msg.attach(report_file)
# 主題
msg["Subject"] = title
# 發(fā)件人
msg["From"] = conf.get("email", "from_addr")
# 收件人
msg["To"] = conf.get("email", "to_addr")
# 第三步:發(fā)送郵箱
smtp.send_message(msg, from_addr=conf.get("email", "from_addr"), to_addrs=conf.get("email", "to_addr"))
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python創(chuàng)建與遍歷二叉樹的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于python創(chuàng)建與遍歷二叉樹的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
pytorch實(shí)現(xiàn)從本地加載 .pth 格式模型
今天小編就為大家分享一篇pytorch實(shí)現(xiàn)從本地加載 .pth 格式模型,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
基于Python打造一個(gè)高效開發(fā)輔助全能工具箱
在日常開發(fā)過程中,我們經(jīng)常需要進(jìn)行各種瑣碎但又必不可少的操作,本文介紹一款基于?Python?編寫的?全能工具箱,它涵蓋了開發(fā)過程中常用的功能,希望對大家有所幫助2025-03-03

