python郵件附件
A. 求助:寫python腳本發 帶有附件的郵件, 收到郵件後,發現附件直接顯示在屏幕上了,而不是以附件形式
這是因為你的附件格式。如果是rar格式的話,可能就不會直接顯示內在屏幕上了。容
我以前寫郵件收件端都比你這個復雜,那時候郵件的庫支持還很差,所有的協議都要自己寫。包括附件的編碼。那個很長的BASE64寫的東西。
B. 如何使用Python發送帶附件的郵件
importsmtplib
fromos.pathimportbasename
fromemail.mime.
fromemail.mime.multipartimportMIMEMultipart
fromemail.mime.textimportMIMEText
fromemail.utilsimportCOMMASPACE,formatdate
defsend_mail(send_from,send_to,subject,text,files=None,
server="127.0.0.1"):
assertisinstance(send_to,list)
msg=MIMEMultipart(
From=send_from,
To=COMMASPACE.join(send_to),
Date=formatdate(localtime=True),
Subject=subject
)
msg.attach(MIMEText(text))
forfinfilesor[]:
withopen(f,"rb")asfil:
msg.attach(MIMEApplication(
fil.read(),
Content_Disposition='attachment;filename="%s"'%basename(f)
))
smtp=smtplib.SMTP(server)
smtp.sendmail(send_from,send_to,msg.as_string())
smtp.close()
C. 如何用爬蟲爬取郵件附件python
我也遇到了這個問題,我的解決方法是,先將列表按照時間排序後再抓取,每次抓取完記錄最後一條的url,下載再抓取時,遇到這個url,抓取就自動退出。如果解決了您的問題請點贊!如果未解決請繼續追問!
D. python,如何發送帶附件的郵件
可以通過以下代碼實現:
importsmtplib
fromemail.mime.textimportMIMEText
importemail.mime.multipart
fromemail.
fromemail.MIMEBaseimportMIMEBase
fromemailimportEncoders
defsend_mail():
mailto_list=['xxxx','xxx']#收件人
mail_host="xxxxx"#設置伺服器
mail_user="xxxx"#用戶名
mail_pass="xxxxxx"#口令
mail_postfix="xxxx.xxx"#發件箱的後綴
me="hello"+"<"+mail_user+"@"+mail_postfix+">"#這里的hello可以任意設置,收到信後,將按照設置顯示
content='Thisistestmail!'#郵件正文
msg=MIMEMultipart()
body=MIMEText(content,_subtype='html',_charset='gb2312')#創建一個實例,這里設置為html格式郵件
msg.attach(body)
msg['Subject']="SubjectTest"#設置主題
msg['From']=me
msg['To']=";".join(mailto_list)
#附件內容,若有多個附件,就添加多個part,如part1,part2,part3
part=MIMEBase('application','octet-stream')
#讀入文件內容並格式化,此處文件為當前目錄下,也可指定目錄例如:open(r'/tmp/123.txt','rb')
part.set_payload(open('test.txt','rb').read())
Encoders.encode_base64(part)
##設置附件頭
part.add_header('Content-Disposition','attachment;filename="test.txt"')
msg.attach(part)
try:
s=smtplib.SMTP()
s.connect(mail_host)#連接smtp伺服器
s.login(mail_user,mail_pass)#登陸伺服器
s.sendmail(me,mailto_list,msg.as_string())#發送郵件
s.close()
print'sendmailsucess'
returnTrue
exceptException,e:
printstr(e)
returnFalse
E. 用Python發送郵件,可以群發,帶有多個附件
'''''
函數說明:Send_email_text()函數實現發送帶有附件的郵件,可以群發,附件格式包括:xlsx,pdf,txt,jpg,mp3等
參數說明:
1.subject:郵件主題
2.content:郵件正文
3.filepath:附件的地址,輸入格式為["","",...]
4.receive_email:收件人地址,輸入格式為["","",...]
'''
defSend_email_text(subject,content,filepath,receive_email):
importsmtplib
fromemail.mime.multipartimportMIMEMultipart
fromemail.mime.textimportMIMEText
fromemail.mime.
sender="發送方郵箱"
passwd="填入發送方密碼"
receivers=receive_email#收件人郵箱
msgRoot=MIMEMultipart()
msgRoot['Subject']=subject
msgRoot['From']=sender
iflen(receivers)>1:
msgRoot['To']=','.join(receivers)#群發郵件
else:
msgRoot['To']=receivers[0]
part=MIMEText(content)
msgRoot.attach(part)
##添加附件部分
forpathinfilepath:
if".jpg"inpath:
#jpg類型附件
jpg_name=path.split("\")[-1]
part=MIMEApplication(open(path,'rb').read())
part.add_header('Content-Disposition','attachment',filename=jpg_name)
msgRoot.attach(part)
if".pdf"inpath:
#pdf類型附件
pdf_name=path.split("\")[-1]
part=MIMEApplication(open(path,'rb').read())
part.add_header('Content-Disposition','attachment',filename=pdf_name)
msgRoot.attach(part)
if".xlsx"inpath:
#xlsx類型附件
xlsx_name=path.split("\")[-1]
part=MIMEApplication(open(path,'rb').read())
part.add_header('Content-Disposition','attachment',filename=xlsx_name)
msgRoot.attach(part)
if".txt"inpath:
#txt類型附件
txt_name=path.split("\")[-1]
part=MIMEApplication(open(path,'rb').read())
part.add_header('Content-Disposition','attachment',filename=txt_name)
msgRoot.attach(part)
if".mp3"inpath:
#mp3類型附件
mp3_name=path.split("\")[-1]
part=MIMEApplication(open(path,'rb').read())
part.add_header('Content-Disposition','attachment',filename=mp3_name)
msgRoot.attach(part)
try:
s=smtplib.SMTP()
s.connect("smtp.mail.aliyun.com")#這里我使用的是阿里雲郵箱,也可以使用163郵箱:smtp.163.com
s.login(sender,passwd)
s.sendmail(sender,receivers,msgRoot.as_string())
print("郵件發送成功")
exceptsmtplib.SMTPExceptionase:
print("Error,發送失敗")
finally:
s.quit()
F. 如何使用python電子郵件獲取解碼附件文件
import email.utils
msg = email.message_from_string(self.request.body)#http://docs.python.org/2/library/email.parser.html
部分在msg.walk()中:版
ctype = part.get_content_type()
如果權['image / jpeg','image / png']中的ctype為
image_file = part.get_payload(decode = True)
image_file_name = part。 get_filename()
G. 求專家:python發送html郵件,同時帶附件
很早以前我用過163做過郵件客戶端。我用的是POP3。當時密碼要加一個驗證。網頁現在只能通過一個JS來下載了。我還真沒有分析過,它升級後是JS還是一個FLASH。不過正文應該可以看到。附件應該至少JS傳遞過來的。
如果163正文也加密我就開心了。會讓我認識的朋友都來用它。 不過應該沒有加密。
你現在的方案應該也是POP3協議的。附件需要單獨解析。我印象中PYTHON現在的庫不支持這個。你需要自己編寫。
H. python中如何實現發送郵件及附件功能的具體詳解
思路如下:
1. 構造MIMEMultipart對象做為根容器
2. 構造MIMEText對象做為郵件顯示內容並附加到根容器
3. 構造MIMEBase對象做為文件附件內容並附加到根容器
a. 讀入文件內容並格式化
b. 設置附件頭
4. 設置根容器屬性
5. 得到格式化後的完整文本
6. 用smtp發送郵件
I. python 發送郵件,附件中文命名,怎麼破
不知道你是不是用的smtp來發的,我的發中文的附件沒問題
#coding=utf-8
'''
Created on 2014-11-03
@author: Neo
'''
import smtplib
from email.mime.text import MIMEText
import email.mime.multipart
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email import Encoders
#你自己修改下xxx的部分
mailto_list = ['[email protected]']
mail_host = "smtp.xxx.com" # 設置伺服器
mail_user = "xxxx" # 用戶名
mail_pass = "xxxxx" # 口令
mail_postfix = "xxxx.com" # 發件箱的後綴
def send_mail():
me = "Hello" + "<" + mail_user + "@" + mail_postfix + ">" # 這里的hello可以任意設置,收到信後,將按照設置顯示
content = 'Plz get the attachment!'
msg = MIMEMultipart()
body = MIMEText(content, _subtype='html', _charset='gb2312') # 創建一個實例,這里設置為html格式郵件
msg.attach(body)
msg['Subject'] = "Test" # 設置主題
msg['From'] = me
msg['To'] = ";".join(mailto_list)
part = MIMEBase('application', 'octet-stream')
# 讀入文件內容並格式化,此處文件為當前目錄下,也可指定目錄 例如:open(r'/tmp/123.txt','rb')
part.set_payload(open(u'test中文.txt','rb').read())
Encoders.encode_base64(part)
## 設置附件頭
part.add_header('Content-Disposition', u'attachment; filename="test中文.txt"')
msg.attach(part)
try:
s = smtplib.SMTP()
s.connect(mail_host) # 連接smtp伺服器
s.login(mail_user, mail_pass) # 登陸伺服器
s.sendmail(me, mailto_list, msg.as_string()) # 發送郵件
s.close()
print 'send mail sucess'
return True
except Exception, e:
print str(e)
return False
send_mail()
測試,發送ok
J. 如何使用python發送包含正文和附件的郵件
fromemail.HeaderimportHeader
fromemail.MIMETextimportMIMEText
fromemail.
importsmtplib,datetime
#創建一個帶附件的實例
msg=MIMEMultipart()
#構造附件
att=MIMEText(open('d:\tc201.rar','rb').read(),'base64','gb2312')
att["Content-Type"]='application/octet-stream'
att["Content-Disposition"]='attachment;filename="tc201.rar"'
msg.attach(att)
#加郵件頭
msg['to']='[email protected]'
msg['from']='[email protected]'
msg['subject']=Header('冒煙測試結果('+str(datetime.date.today())+')',
'gb2312')
#發送郵件
server=smtplib.SMTP('smtp.xxx.com')
server.sendmail(msg['from'],msg['to'],
msg.as_string())
server.close