相关疑难解决方法(0)

使用SMTP从Python发送邮件

我正在使用以下方法使用SMTP从Python发送邮件.这是正确的使用方法还是我遗失了?

from smtplib import SMTP
import datetime

debuglevel = 0

smtp = SMTP()
smtp.set_debuglevel(debuglevel)
smtp.connect('YOUR.MAIL.SERVER', 26)
smtp.login('USERNAME@DOMAIN', 'PASSWORD')

from_addr = "John Doe <john@doe.net>"
to_addr = "foo@bar.com"

subj = "hello"
date = datetime.datetime.now().strftime( "%d/%m/%Y %H:%M" )

message_text = "Hello\nThis is a mail from your server\n\nBye\n"

msg = "From: %s\nTo: %s\nSubject: %s\nDate: %s\n\n%s" 
        % ( from_addr, to_addr, subj, date, message_text )

smtp.sendmail(from_addr, to_addr, msg)
smtp.quit()
Run Code Online (Sandbox Code Playgroud)

python smtp

107
推荐指数
7
解决办法
19万
查看次数

使用非ASCII字符在Python中编码邮件主题(SMTP)

我使用Python模块MimeWriter构造消息,smtplib发送邮件构造的消息是:

file msg.txt:
-----------------------
Content-Type: multipart/mixed;
from: me<me@abc.com>
to: me@abc.com
subject: ??

Content-Type: text/plain;charset=utf-8

??
Run Code Online (Sandbox Code Playgroud)

我使用下面的代码发送邮件:

import smtplib
s=smtplib.SMTP('smtp.abc.com')
toList = ['me@abc.com']
f=open('msg.txt') #above msg in msg.txt file
msg=f.read()
f.close()
s.sendmail('me@abc.com',toList,msg)
Run Code Online (Sandbox Code Playgroud)

我正确收到邮件正文,但主题不合适,

subject: some junk characters

??           <- body is correct.
Run Code Online (Sandbox Code Playgroud)

请指教?有没有办法指定用于主题的解码,如为正文指定的那样.如何正确解码主题?

python smtp utf-8 character-encoding cjk

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

标签 统计

python ×2

smtp ×2

character-encoding ×1

cjk ×1

utf-8 ×1