本文目錄一覽:
- 1、python 怎麼把excel寫到郵件里
- 2、求助:寫python腳本發 帶有附件的郵件, 收到郵件後,發現附件直接顯示在屏幕上了,而不是以附件形式
- 3、Python用腳本發送郵件帶圖片的提示錯誤,為什麼呢?初學者,拿別人的例子該的。。
- 4、Python 收發郵件 和 刪除郵件 怎麼做到
- 5、Python寫完的腳本,在windows發郵件正常,在linux下出現錯誤
- 6、python發郵腳本運行每次都報socket.error: [Errno 110] Connection timed out ,用別人的機器也報
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 ,用別人的機器也報
這個簡單啊。郵件服務器需要驗證。你這裡協議沒有對。所以你的程序一直在等服務器正確的響應。所以當然超時了。要自己改一下發送協議,加上驗證。驗證方法有幾種,要根據返回結果確認是什麼樣的驗證。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/198103.html