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