本文目錄一覽:
- 1、python的發送郵件代 import poplib # 輸入郵件地址, 口令和POP3伺服器地址
- 2、python批量發送郵件–包括批量不同附件
- 3、如何在python程序中發郵件
- 4、如何用Python發郵件
- 5、Python向多人發送、抄送帶附件的郵件(含詳細代碼)
python的發送郵件代 import poplib # 輸入郵件地址, 口令和POP3伺服器地址
不是很理解,你是要把收郵件改成發郵件嗎?
發郵件用的是smtp服務,然後填的是smtp伺服器地址,然後是一個收件人地址
import smtplib
然後發郵件的示例代碼如下
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
my_sender=’429240967@qq.com’ # 發件人郵箱賬號
my_pass = ‘xxxxxxxxxx’ # 發件人郵箱密碼
my_user=’429240967@qq.com’ # 收件人郵箱賬號,我這邊發送給自己
def mail():
ret=True
try:
msg=MIMEText(‘填寫郵件內容’,’plain’,’utf-8′)
msg[‘From’]=formataddr([“FromRunoob”,my_sender]) # 括弧里的對應發件人郵箱昵稱、發件人郵箱賬號
msg[‘To’]=formataddr([“FK”,my_user]) # 括弧里的對應收件人郵箱昵稱、收件人郵箱賬號
msg[‘Subject’]=”菜鳥教程發送郵件測試” # 郵件的主題,也可以說是標題
server=smtplib.SMTP(“smtp.qq.com”, 25) # 發件人郵箱中的SMTP伺服器,埠是25
server.login(my_sender, my_pass) # 括弧中對應的是發件人郵箱賬號、郵箱密碼
server.sendmail(my_sender,[my_user,],msg.as_string()) # 括弧中對應的是發件人郵箱賬號、收件人郵箱賬號、發送郵件
server.quit() # 關閉連接
except Exception: # 如果 try 中的語句沒有執行,則會執行下面的 ret=False
ret=False
return ret
ret=mail()
if ret:
print(“郵件發送成功”)
else:
print(“郵件發送失敗”)
python批量發送郵件–包括批量不同附件
小豬在公司做出納,乾的活卻包括了出納、會計、結算專員等工作,周末都要被無奈在家加班,主要還沒有加班費,簡直是被公司嚴重壓榨。每個月初都要給每個工長發預付款賬單郵件,月中髮結算款賬單。重複性機械工作。
一個及格線上的程序員,最起碼的覺悟就是將重複性的機械工作自動化,於是,在我花了一個多小時,幫她給一部分工長發了一次郵箱後,默默的回來寫了這個腳本。
所以,設計要點就是一個字—— 懶 。
恩,就醬。
經過我觀察,郵件內容分為兩種,這裡先說第一種,「結算款」:
(1) 郵件內容(content)不變,為固定的txt文本
(2) 附件(attch)為每個工長的結算賬單(excel文件.xlsx),此文件命名為總賬單中自動分割出來的名字(暫時不懂怎麼分割出來的=.=),格式為:
(3) 郵件主題(Subject)為附件名(不帶後綴名)
(4) 郵件接收對象(工長)的名單及其郵箱地址基本不變,偶爾變動
(5)
(1) 將工長及其郵箱地址存為CSV文件的兩列,python中將其讀取為字典形式,存儲以供後續查詢郵箱地址。
(2) 遍歷文件夾中的附件(.xlsx類型文件),對其進行兩種操作,一方面將其名字(不帶路徑和後綴)提取出來,作為郵件主題(Subject),並對Subject進一步劃分,得到其中的人名(工長);另一方面,將其傳入MIMEbase模塊中轉為郵件附件對象。
(3) 由上述得到的人名(name),在字典形式的通訊錄中,查找相應的地址(value),即為收件人名稱和地址
(4) 利用python中的email模塊和smtp模塊,登錄自己的郵箱賬號,再對每個附件,得到的收件人名和地址,添加附件,發送郵件。done
在設計過程中有幾點需要注意
(1) 有時一個郵件地址對應兩個人名,此時應該在CSV文件中分為兩行存儲,而不是將兩個人名存為同一個鍵;
(2)有賬單.xlsx文件,通訊錄里卻沒存儲此人記錄,程序應該列印提示沒有通訊記錄的人名,且不能直接退出,要保證員工看到此提示,此第一版程序還有解決此問題;
(3)此程序發送的郵件內容為純文本,若要求郵件內容有不同格式(如部分加粗,部分紅色),還有小部分需要每次更改的地方(如郵件內容包含當前月份),如何解決?(這就是第二種郵件內容,「預算款」);
(4)重名的,暫時還沒碰到,程序中也沒給出解決方案。
第一版到此,20180830,待更新
第二版更新,20180904
第三版更新,20180909
轉戰CSDN博客,更多博客見傳送門《 xiaozhou的博客主頁 》
如何在python程序中發郵件
比如我用自己的 139 郵箱 lucia_gaga@139.com
發送郵件到網易郵箱 也是我的辦公郵箱 lu.han@beebank.com
以下代碼調試通過:
# coding: utf-8
import smtplib
from email.mime.text import MIMEText
from email.header import Header
sender = ‘lucia_gaga@139.com’
receiver = ‘lu.han@beebank.com’
subject = ‘python email test’
smtpserver = ‘smtp.139.com’
username = ‘lucia_gaga@139.com’
password = ‘xxxxxxxx’
msg = MIMEText(‘你好 lucia 這是你的第一封 python 發出的郵件’, ‘text’, ‘utf-8’)
# 中文需參數『utf-8’,單位元組字元不需要
msg[‘Subject’] = Header(subject, ‘utf-8’)
smtp = smtplib.SMTP()
smtp.connect(‘smtp.139.com’)
smtp.login(username, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()
運行結果:
如何用Python發郵件
一般最好有個smtp伺服器,比如說你在163註冊個郵箱,這樣可以用smtplib通過這個郵箱來發送。以下是示例:
#-*- coding:utf8 -*-
import smtplib
import email
import mimetypes
from email.MIMEMultipart import MIMEMultipart
from email.mime.text import MIMEText
mail_host=”smtp.163.com”
mail_user=”yourusername”
mail_pass=”yourpassword”
mail_postfix=”mail.163.com”
def sendmail(to_list,sub,con):
“””發送郵件
“””
# translation
me = mail_user+””+mail_user+”@”+mail_postfix+””
msg = MIMEMultipart(‘related’)
msg[‘Subject’] = email.Header.Header(sub,’utf-8′)
msg[‘From’] = me
msg[‘To’] = “;”.join(to_list)
msg.preamble = ‘This is a multi-part message in MIME format.’
msgAlternative = MIMEMultipart(‘alternative’)
msgText = MIMEText(con, ‘plain’, ‘utf-8’)
msgAlternative.attach(msgText)
msg.attach(msgAlternative)
try:
s = smtplib.SMTP()
s.connect(mail_host)
s.login(mail_user,mail_pass)
s.sendmail(me, to_list, msg.as_string())
s.quit()
except Exception,e:
return False
return True
if __name__ == ‘__main__’:
if sendmail([‘test@test.com’],”測試”,”測試”):
print “Success!”
else:
print “Fail!”
如果要不經過郵件系統直接發,通常會被當作垃圾郵件扔了,所以還是這樣吧。
Python向多人發送、抄送帶附件的郵件(含詳細代碼)
python要發送帶附件的郵件,首先要創建MIMEMultipart()實例,然後構造附件,如果有多個附件,可依次構造,最後使用smtplib.smtp發送。
步驟:
(1)設置伺服器所需信息(ps:部門郵箱密碼為授權碼,需自行登錄相應郵箱設置授權碼)
(2)設置email信息
(3)附件部分
(4)登錄郵箱並發送郵件
附上源碼:
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/243252.html