第一段代码:
メールをインポート
MIME タイプ
をメールからインポートします。MIMEMultipart import MIMEMultipart
メールから.MIMEText import MIMEText
メールから.MIMEImage import MIMEImage
import smtplib
def sendEmail(authInfo, fromAdd, toAdd, subject, plainText, htmlText):
strFrom = fromAdd
strTo = ', '.join(toAdd)
server = authInfo.get('server')
user = authInfo.get('user')
passwd = authInfo.get('password')
そうでない場合 (サーバー、ユーザー、およびパスワード) :
print 'ログイン情報が不完全です。今すぐ終了'
return
# 设定ルート情報
msgRoot = MIMEMultipart('popular')
msgRoot['Subject'] = subject
msgRoot['From'] = strFrom
msgRoot['へ] = strTo
msgRoot.preamble = 'これは MIME 形式のマルチパート メッセージです。'
# メッセージ本文のプレーンバージョンと HTML バージョンを
# 'alternative' 部分にカプセル化し、メッセージエージェントがどちらを表示するかを決定できるようにします。
msgAlternative = MIMEMultipart('alternative')
msgRoot.attach(msgAlternative)
#设定纯文本信息
msgText = MIMEText(plainText, 'plain', 'utf-8')
msgAlternative.attach(msgText)
#设定HTML情報
msgText = MIMEText(htmlText, 'html', 'utf-8')
msgAlternative.attach(msgText)
#设定内置图片情報
fp = open('test.jpg', 'rb')
msgImage = MIMEImage(fp.read())
fp.close()
msgImage.add_header('Content-ID', '
msgRoot.attach(msgImage)
#発信邮件
smtp = smtplib.SMTP()
#设定调试级别,依情况而定
smtp.set_debuglevel(1)
smt p.connect(サーバー)
smtp.login(user, passwd)
smtp.sendmail(strFrom, strTo, msgRoot.as_string())
smtp.quit()
return
if __name__ == '__main__' :
authInfo = {}
authInfo['server'] = 'smtp.somehost.com'
authInfo['user'] = 'username'
authInfo['password'] = 'password'
fromAdd = 'username@somehost.com'
toAdd = ['someone@somehost.com', 'other@somehost.com']
subject = '邮件主题'
plainText = '这里是普通文本'
htmlText = 'HTML文本'
sendEmail(authInfo, fromAdd, toAdd, subject, plainText, htmlText)
ファイル形式のファイル
HTML形式的邮件
sender = '***'
receiver = '***'
subject = 'python email test'
smtpserver = 'smtp.163.com'
username = '***'
password = '***'
msg = MIMEText('
msg['Subject'] = subject
smtp = smtplib.SMTP()
smtp.connect('smtp.163.com')
smtp.login(username, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()
带图片的HTML邮件
sender = '***'
receiver = '***'
subject = 'python email test'
smtpserver = 'smtp.163.com'
username = '***'
password = '***'
msgRoot = MIMEMultipart('related')
msgRoot['Subject'] = 'test message'
msgText = MIMEText('Some HTML text and an image.
good!','html','utf-8')
msgRoot.attach(msgText)
fp = open('h:\\python\\1.jpg', 'rb')
msgImage = MIMEImage(fp.read())
fp.close()
msgImage.add_header('Content-ID', '
msgRoot.attach(msgImage)
smtp = smtplib.SMTP()
smtp.connect('smtp.163.com')
smtp.login(username, password)
smtp.sendmail(sender, receiver, msgRoot.as_string())
smtp.quit()
带附件的邮件
sender = '***'
receiver = '***'
subject = 'python email test'
smtpserver = 'smtp.163.com'
username = '***'
password = '***'
msgRoot = MIMEMultipart('related')
msgRoot['Subject'] = 'test message'
#构造附件
att = MIMEText(open('h:\\python\\1.jpg', 'rb').read(), 'base64', 'utf-8')
att["Content-Type"] = 'application/octet-stream'
att["Content-Disposition"] = 'attachment; filename="1.jpg"'
msgRoot.attach(att)
smtp = smtplib.SMTP()
smtp.connect('smtp.163.com')
smtp.login(username, password)
smtp.sendmail(sender, receiver, msgRoot.as_string())
smtp.quit()
群邮件
sender = '***'
receiver = ['***','****',……]
subject = 'python email test'
smtpserver = 'smtp.163.com'
username = '***'
password = '***'
msg = MIMEText('你好','plain','utf-8')
msg['Subject'] = subject
smtp = smtplib.SMTP()
smtp.connect('smtp.163.com')
smtp.login(username, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()
各种元素都包含的邮件
sender = '***'
receiver = '***'
subject = 'python email test'
smtpserver = 'smtp.163.com'
username = '***'
password = '***'
# メッセージ コンテナを作成します - 正しい MIME タイプは multipart/alternative です。
msg = MIMEMultipart('alternative')
msg['Subject'] = "Link"
# メッセージの本文を作成します (プレーンテキストと HTML バージョン)。
text = "こんにちは!nお元気ですか?nここに希望のリンクがあります:nhttp://www.python.org"
html = """
こんにちは!
お元気ですか?
こちらがご希望の リンク です。
# text/plain と text/html の両方の部分の MIME タイプを記録します。
part1 = MIMEText(text, 'plain')
part2 = MIMEText(html, 'html')
# メッセージ コンテナにパーツを添付します。
# RFC 2046 によれば、マルチパート メッセージの最後の部分、この場合は
# HTML メッセージが最適であり、推奨されます。
msg.attach( part1)
msg.attach(part2)
#构造付属品
att = MIMEText(open('h:\python\1.jpg', 'rb').read(), 'base64', 'utf-8')
att["Content-Type"] = 'application/octet-stream'
att["Content-Disposition"] = 'attachment; filename="1.jpg"'
msg.attach(att)
smtp = smtplib.SMTP()
smtp.connect('smtp.163.com')
smtp。 login(ユーザー名, パスワード)
smtp.sendmail(送信者, 受信者, msg.as_string())
smtp.quit()
SSL ベースのコンポーネント
msg = MIMEText('你好','plain','utf-8')#中文必要パラメータ'utf-8',单字节字符不要
msg['Subject'] = Header(件名、'utf-8')
smtp = smtplib.SMTP()
smtp.connect('smtp.163.com')
smtp.ehlo()
smtp.starttls()
smtp.ehlo()
smtp.set_debuglevel(1)
smtp.login(ユーザー名, パスワード)
smtp.sendmail(送信者, 受信者, msg.as_string())
smtp.quit()