1. 程式人生 > >解決python傳送郵件亂碼

解決python傳送郵件亂碼

一.郵件主題亂碼

1.開啟python的Lib資料夾下的 mimetypes.py 檔案,找到大概256行的

‘default_encoding = sys.getdefaultencoding()’。

在這行前面新增三行,並且註釋4行程式碼

                #try:
                #    ctype = ctype.encode(default_encoding) # omit in 3.x!
                #except UnicodeEncodeError:
                #    pass
                else:
                    yield ctype
                i += 1

                if sys.getdefaultencoding() != 'gbk':  
                    reload(sys)  
                    sys.setdefaultencoding('gbk')
                default_encoding = sys.getdefaultencoding()

2.在程式碼中加入下面片段

reload(sys) 
sys.setdefaultencoding('gb18030')

二.郵件內容亂碼

在程式碼中對內容做如下處理

msg = MIMEText(content,format,'gbk')

三.詳細傳送郵件程式碼
#!/usr/bin/python
#coding:utf-8 
 
import smtplib
from email.mime.text import MIMEText
import sys 
 
#郵箱伺服器地址
mail_host = 'smtp.163.com'
#郵箱使用者名稱
mail_user = 'XXX'
#郵箱密碼
mail_pass = 'XXX'
mail_postfix = '163.com'
 
def send_mail(to_list,subject,content):
    format='plain'
    me = mail_user+"<"+mail_user+"@"+mail_postfix+">"
    msg = MIMEText(content,format,'gbk')
    reload(sys) 
    sys.setdefaultencoding('gb18030')
    if not isinstance(subject,unicode):
        subject = unicode(subject)
    msg['Subject'] = subject
    msg['From'] = me
    msg['to'] = to_list 
    msg['Accept-Language']='zh-CN'
    msg['Accept-Charset']='ISO-8859-1,utf-8'
 
    try:
        s = smtplib.SMTP()
        s.connect(mail_host)
        s.login(mail_user,mail_pass)
        s.sendmail(me,to_list,msg.as_string())
        s.close()
        return True
    except Exception,e:
        print str(e)
        return False
 
if __name__ == "__main__":
    send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

四.收發件人中文亂碼

可參考此連結:http://blog.csdn.net/zm2714/article/details/8134118

五.測試郵件傳送

python email_test.py '[email protected]' '測試郵件' '這個郵件是測試用'


相關推薦

解決python傳送郵件亂碼

一.郵件主題亂碼 1.開啟python的Lib資料夾下的 mimetypes.py 檔案,找到大概256行的 ‘default_encoding = sys.getdefaultencoding()’。 在這行前面新增三行,並且註釋4行程式碼

Python傳送郵件smtplib.SMTP各報錯問題的解決方法

經測試可用的傳送郵件程式碼: import smtplib from email.mime.text import MIMEText # 第三方 SMTP 服務 mail_host = "smtp.163.com" # SMTP伺服器 mail_user = "user

解決jenkins 傳送郵件圖片亂碼問題

1.在本地mac上測試郵件傳送正常 傳送郵件內容圖片沒有亂碼  2.公司測試伺服器是一臺windows2008的系統jmeter + ant  jenkins 安裝完成後 設定郵件傳送格式模板,設定附件傳送方式,   jenkins 自動執行後傳送郵件 發現郵件內容圖片是亂碼&n

python傳送郵件給多人

親測,163郵箱不能傳送,我用的qq的 import smtplib from email.mime.text import MIMEText sender = '[email protected]' passwd = '****' receiver = ["[email&#

python傳送郵件方法

python傳送郵件方法 1、普通文字郵件 #!/usr/bin/env python# -*- coding:utf-8 -*-import smtplibfrom email.mime.text import MIMETextmail_user="[email protected]" #傳送

python傳送郵件smtp

1.傳送QQ郵件 qq發件伺服器:smtp.qq.com 發件伺服器埠:465 發件郵箱:[email protected] 授權碼:*** qq郵箱是需要SSL認證的,連線伺服器需要認證 1.1 MIMEText只能傳送正文,不能帶附件傳送 1.2

python 傳送郵件(文字、表格、附件)

import pandas as pd import smtplib   from email.mime.text import MIMEText   from email.mime.multipart import MIMEMultipart filena

python傳送郵件模板

python傳送郵件(不帶附件)模板 import smtplibfrom email.mime.text import MIMETextfrom email.header import Headersender = '[email protected]'receiver = '[email

Python傳送郵件不需要發件人密碼認證

#!/usr/bin/python # coding: UTF-8 import smtplib from email.mime.text import MIMEText receivers_list=["[email protected]",] #mail_h

Python3傳送郵件亂碼問題:add_header(self,_name,_value,**_params)方法

在傳送附件時如果是中文名的檔案,則會出現亂碼。 可以使用:msg.add_header('content-disposition', 'attachment',filename=('utf-8', '', 我.txt)) 最後一個引數:params:可以直接寫成檔名,也可寫成路徑加檔名,qq

Python傳送郵件並抄送

轉載: http://blog.51cto.com/lizhenliang/1875330 程式碼 #!/usr/bin/python # -*- coding: utf-8 -*- import smtplib def sendMail(body): smtp_serve

python傳送郵件(帶附件)

python通過stmp傳送qq郵件,帶附件 import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.header import Head

python傳送郵件

轉載自後知者的部落格 使用email模組和smtplib模組,內容比較固定,配好了即可實現,程式碼如下: 一、普通郵件傳送 import smtplib from email.mime.text import MIMEText email_host = ‘smt

利用python傳送郵件

1. 點選設定,選擇POP3/SMTP/IMAP。 2. 第一次進入,這兩項應該是未勾選的。  3. 點選左側客戶端授權密碼,再點選重置授權碼。輸入簡訊驗證碼後,會提示設定授權密碼(不要和郵箱登陸密碼重複)。 4. 記住自己設定的授權密碼之後,開始用pyth

python 傳送郵件 附帶附件

from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart import smtplib #建立一個帶附件的例項 msg = MIMEMultipart() #構造

解決python matplotlib中文亂碼問題

修改配置檔案matplotlibrc Python36\site-packages\matplotlib\mpl-data\matplotlibrc 如下最後l兩行: #font.size

python傳送郵件模組

import smtplib import time from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.appl

springboot應用整合springbootadmin實現應用監控(解決無法傳送郵件問題)

架設服務端 1.新增依賴springbootadmin和spring security <dependency> <groupId>org.springframework.boot</groupId

Python傳送郵件模組(SMTP)

首先,使用SMTP實現傳送郵件的話,需要先獲取一個代發郵件的授權碼。 以163郵箱為例: 登入郵箱後--點選設定--客戶端授權碼--開啟。如圖 其實網上已經有很多類似的模組介紹和試用了,這邊主要是想記錄下自己寫的一個類。呼叫方式簡單,可以直接將py檔案貼到專案中,import後

解決python爬蟲中文亂碼問題

今天在用python爬取網頁資料時中文顯示亂碼,最終發現是目標網頁編碼與python預設編碼‘utf-8’不一致導致的。下面把解決方法與大家分享。 step1:檢視目標網頁編碼方式 在各種瀏覽器開啟的任意頁面上使用F12功能鍵,即可使用開發者工具,在視窗console標籤下,鍵入“d