相关疑难解决方法(0)

Python - 如何发送utf-8电子邮件?

如何发送utf8电子邮件?

import sys
import smtplib
import email
import re

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

def sendmail(firm, fromEmail, to, template, subject, date):
    with open(template, encoding="utf-8") as template_file:
        message = template_file.read()

    message = re.sub(r"{{\s*firm\s*}}", firm, message)
    message = re.sub(r"{{\s*date\s*}}", date, message)
    message = re.sub(r"{{\s*from\s*}}", fromEmail, message)
    message = re.sub(r"{{\s*to\s*}}", to, message)
    message = re.sub(r"{{\s*subject\s*}}", subject, message)

    msg = MIMEMultipart("alternative")
    msg.set_charset("utf-8")

    msg["Subject"] = subject
    msg["From"] = fromEmail
    msg["To"] = to

    #Read from template
    html = message[message.find("html:") + len("html:"):message.find("text:")].strip()
    text = …
Run Code Online (Sandbox Code Playgroud)

python email smtp utf-8

35
推荐指数
2
解决办法
4万
查看次数

Python - 电子邮件头解码UTF-8

是否有任何Python模块有助于解码各种形式的编码邮件标题,主要是主题,简单 - 比如说 - UTF-8字符串?

以下是我拥有的邮件文件的示例主题标题:

Subject: [ 201105311136 ]=?UTF-8?B?IMKnIDE2NSBBYnM=?=. 1 AO;
Subject: [ 201105161048 ] GewSt:=?UTF-8?B?IFdlZ2ZhbGwgZGVyIFZvcmzDpHVmaWdrZWl0?=
Subject: [ 201105191633 ]
  =?UTF-8?B?IERyZWltb25hdHNmcmlzdCBmw7xyIFZlcnBmbGVndW5nc21laHJhdWZ3ZW5kdW4=?=
  =?UTF-8?B?Z2VuIGVpbmVzIFNlZW1hbm5z?=
Run Code Online (Sandbox Code Playgroud)

文本 - 编码的刺痛 - 文本

文本 - 编码的字符串

text - 编码的字符串 - 编码的字符串

Encodig也可能是ISO 8859-15之类的东西.

更新1:我忘了提,我试过了email.header.decode_header

    for item in message.items():
    if item[0] == 'Subject':
            sub = email.header.decode_header(item[1])
            logging.debug( 'Subject is %s' %  sub )
Run Code Online (Sandbox Code Playgroud)

这输出

DEBUG:root:Subject是[('[201101251025] ELStAM; =?UTF-8?B?IFZlcmbDvGd1bmcgdm9tIDIx?=.Januar 2011',无)]

这没有什么帮助.

更新2:感谢Ingmar Hupp的评论.

第一个示例解码为两个tupels的列表:

print decode_header("""[201105161048] GewSt:=?UTF-8?B?IFdlZ2ZhbGwgZGVyIFZvcmzDpHVmaWdrZWl0?=""")
[('[201105161048] GewSt:',None),('Wegfall der Vorl\xc3\xa4ufigkeit', 'UTF-8')]

这总是[(字符串,编码),(字符串,编码),...]所以我需要一个循环将所有[0]项连接到一个字符串或如何在一个字符串中得到它?

主题:[201101251025] ELStAM; =?UTF-8?B?IFZlcmbDvGd1bmcgdm9tIDIx?=.Januar 2011

解码不好: …

python email email-headers

34
推荐指数
5
解决办法
3万
查看次数

如何使用Python发送电子邮件?

我正在编写一个使用Python发送电子邮件的程序.我从各种论坛中学到的是以下代码:

#!/usr/bin/env python
import smtplib
sender = "sachinites@gmail.com"
receivers = ["abhisheks@cse.iitb.ac.in"]
yourname = "Abhishek Sagar"
recvname = "receptionist"
sub = "Testing email"
body = "who cares"
message = "From: " + yourname + "\n" 
message = message + "To: " + recvname + "\n"
message = message + "Subject: " + sub + "\n" 
message = message + body
try:
    print "Sending email to " + recvname + "...",
    server = smtplib.SMTP('smtp.gmail.com:587')
    username = 'XYZ@gmail.com'  
    password = '*****'  
    server.ehlo()
    server.starttls() …
Run Code Online (Sandbox Code Playgroud)

python email smtplib

8
推荐指数
2
解决办法
2万
查看次数

为什么Gmail不显示我的RFC 2047编码的“发件人”标头?

我的Python应用程序使用email.header.Header(http://docs.python.org/2/library/email.header.html)编码外发电子邮件的所有标头(包括“发件人”标头),如下所示:编码邮件Python中的主题(SMTP),带有非ASCII字符

它非常适合ASCII发送者名称,但适用于像

阿德里安·庞卡<pokemon@myservice.com>

它产生

来自:=?utf-8?q?Adrian_P = C5 = 82onka_ = 3Cpokemon = 40myservice = 2Ecom = 3E?=

不幸的是,Gmail显然不喜欢这种编码方式,因为它将发件人显示为(未知),并将整个邮件标记为垃圾邮件。

如何正确编码非ASCII发送者?

python email gmail encoding rfc

3
推荐指数
1
解决办法
982
查看次数

标签 统计

email ×4

python ×4

email-headers ×1

encoding ×1

gmail ×1

rfc ×1

smtp ×1

smtplib ×1

utf-8 ×1