您的位置:

使用python脚本处理邮件的简单介绍

本文目录一览:

python 怎么把excel写到邮件里

import xlrd

import os,time

#引入邮件相关库

import smtplib

from email.mime.text import MIMEText

from email.header import Header

import base64

#处理从excel中读取的float类型数据的类

#目前集成两种处理:(1)float到int型的转换(2)float到str型的转换,后续有需要可以增加方法以集成其他类型的转换

class judgeFloat:

def floatToInt(self,variable):

variable="%d"%variable

return variable

def floatToStr(self,variable):

variable=xlrd.xldate_as_tuple(variable,0)

variable=list(variable)

if variable[1]10:

variable[1]='0'+str(variable[1])

variable=str(variable[0])+str(variable[1])+str(variable[2])

return variable

#确定文档是否修改的函数:获取文档的修改时间与本地时间对比,不一致要求用户确认是否继续执行,一致则直接执行

def openFile(filename,address):

filetime=time.strftime("%Y/%m/%d",time.localtime(os.stat(address+filename).st_mtime))

local=time.strftime("%Y/%m/%d",time.localtime())

if filetime!=local:

single=input("文档今天还没有修改过,请确认是否继续?确认请输入1后点击回车,否则输入2点击回车。")

if single==1:

pass

elif single==2:

exit()

else:

print '您的输入有误!脚本即将结束。'

time.sleep(5)

exit()

else:

pass

#写邮件的函数

def mailWrite(filename,address):

header='htmlheadmeta http-equiv="Content-Type" content="text/html; charset=utf-8" //head'

th='body text="#000000"committed缺陷详情:table border="1" cellspacing="0" cellpadding="3" bordercolor="#000000" width="1800" align="left" tr bgcolor="#F79646" align="left" th标识/thth摘要/thth状态/thth优先级/thth严重性/thth标记/thth所有者/thth创建时间/thth修改时间/th/tr'

#打开文件

filepath=address+filename

book=xlrd.open_workbook(filepath)

sheet=book.sheet_by_index(0)

#获取行列的数目,并以此为范围遍历获取单元数据

nrows = sheet.nrows-1

ncols = sheet.ncols

body=''

cellData=1

for i in range(1,nrows+1):

td=''

for j in range(ncols):

#读取单元格数据,赋给cellData变量供写入HTML表格中

cellData=sheet.cell_value(i,j)

#调用浮点型转换方法解决读取的日期内容为浮点型数据的问题

if isinstance(cellData,float):

if j==0 and i0:

cellDataNew=judgeFloat()

cellData=cellDataNew.floatToInt(cellData)

else:

cellDataNew=judgeFloat()

cellData=cellDataNew.floatToStr(cellData)

else:

pass

tip='td'+cellData+'/td'

#并入tr标签

td=td+tip

tr='tr'+td+'/tr'

#为解决字符串拼接问题增设语句,tr从excel中读取出来是unicode编码,转换成UTF-8编码即可拼接

tr=tr.encode('utf-8')

#并入body标签

body=body+tr

tail='/table/body/html'

#将内容拼接成完整的HTML文档

mail=header+th+body+tail

return mail

#发送邮件

def mailSend(mail):

#设置发件人

sender = '***'

#设置接收人

receiver = '***@***.com'

#设置邮件主题

subject = '测试邮件,请忽略!'

#设置发件服务器,即smtp服务器

smtpserver = 'smtp.***.net'

#设置登陆名称

username = '***@***.net'

#设置登陆密码

password = '******'

#实例化写邮件到正文区,邮件正文区需要以HTML文档形式写入

msg = MIMEText(mail,'html','utf-8')

#输入主题

msg['Subject'] = subject

#调用邮件发送方法,需配合导入邮件相关模块

smtp = smtplib.SMTP()

#设置连接发件服务器

smtp.connect('smtp.***.net')

#输入用户名,密码,登陆服务器

smtp.login(username, password)

#发送邮件

smtp.sendmail(sender, receiver, msg.as_string())

#退出登陆并关闭与发件服务器的连接

smtp.quit()

#入口函数,配置文件地址和文件名

def main():

filename='Sheet1.xlsx'

address='d:/defectManage/'

openFile(filename,address)

mail=mailWrite(filename,address)

mailSend(mail)

#调用执行main函数

if __name__=="__main__":

main()

求助:写python脚本发 带有附件的邮件, 收到邮件后,发现附件直接显示在屏幕上了,而不是以附件形式

这是因为你的附件格式。如果是rar格式的话,可能就不会直接显示在屏幕上了。

我以前写邮件收件端都比你这个复杂,那时候邮件的库支持还很差,所有的协议都要自己写。包括附件的编码。那个很长的BASE64写的东西。

Python用脚本发送邮件带图片的提示错误,为什么呢?初学者,拿别人的例子该的。。

authentication failed 认证失败

smtp.login(username, password) 用户名,密码不正确 或者 mail未开启IMAP POP3等协议

Python 收发邮件 和 删除邮件 怎么做到

邮件传输的SMTP协议,并根据该协议,利用了Python的‘smtplib’和‘email‘模块,完成邮件的成功发送。

简单搭的报警邮件服务器没有UI,用FOXMAIL登录获取邮件头删除过慢,写个python脚本快速清空邮件

#!/usr/bin/python

import poplib

def main():

uugame=poplib.POP3('mail.url.com',110)

uugame.user('dicc@url.com')

uugame.pass_('dicc1234')

print uugame.stat()

mailmax=uugame.stat()[0]

for i in range(mailmax):

uugame.dele(i+1)

print uugame.stat()

uugame.quit()

if __name__=="__main__":

main()

Python写完的脚本,在windows发邮件正常,在linux下出现错误

名称解析问题……既然windows正常,linux不正常,一般不都是编码弄的么……我乱猜的。

python发邮脚本运行每次都报socket.error: [Errno 110] Connection timed out ,用别人的机器也报

这个简单啊。邮件服务器需要验证。你这里协议没有对。所以你的程序一直在等服务器正确的响应。所以当然超时了。要自己改一下发送协议,加上验证。验证方法有几种,要根据返回结果确认是什么样的验证。