ホームページ > バックエンド開発 > Python チュートリアル > Python で電子メールを送信するためのコード例 (HTML、画像、添付ファイルをサポート)

Python で電子メールを送信するためのコード例 (HTML、画像、添付ファイルをサポート)

WBOY
リリース: 2016-06-16 08:46:44
オリジナル
1297 人が閲覧しました

第一段代码:

复制代码代码如下:

#!/usr/bin/ python
# -*- コーディング: utf-8 -*-

メールをインポート
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@s​​omehost.com']
subject = '邮件主题'
plainText = '这里是普通文本'
htmlText = 'HTML文本'
sendEmail(authInfo, fromAdd, toAdd, subject, plainText, htmlText)



ファイル形式のファイル

复制代码代码如下:

#!/usr/bin/env python3  
#coding: utf-8  
import smtplib  
from email.mime.text import MIMEText  
from email.header import Header  

sender = '***'  
receiver = '***'  
subject = 'python email test'  
smtpserver = 'smtp.163.com'  
username = '***'  
password = '***'  

msg = MIMEText('你好','text','utf-8')#中文需参数‘utf-8',单字节字符不需要  
msg['Subject'] = Header(subject, 'utf-8')  

smtp = smtplib.SMTP()  
smtp.connect('smtp.163.com')  
smtp.login(username, password)  
smtp.sendmail(sender, receiver, msg.as_string())  
smtp.quit()  

HTML形式的邮件

复制代码 代码如下:

#!/usr/bin/env python3
#coding: utf-8
import smtplib
from email.mime.text import MIMEText

sender = '***'
receiver = '***'
subject = 'python email test'
smtpserver = 'smtp.163.com'
username = '***'
password = '***'

msg = MIMEText('

你好

','html','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()

带图片的HTML邮件

复制代码 代码如下:

#!/usr/bin/env python3
#coding: utf-8
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage

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()

带附件的邮件

复制代码 代码如下:

#!/usr/bin/env python3
#coding: utf-8
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage

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()

群邮件

复制代码 代码如下:

#!/usr/bin/env python3
#coding: utf-8
import smtplib
from email.mime.text import MIMEText

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()

各种元素都包含的邮件

复制代码 代码如下:

#!/usr/bin/env python3
#coding: utf-8
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage

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 ベースのコンポーネント

复制代码代码如下:

#!/usr/bin/env python3
#coding: utf-8
import smtplib
from email.mime.text import MIMEText
from email.header import Header
sender = '***'
receiver = '***'
subject = 'Python メール テスト'
smtpserver = 'smtp.163.com'
ユーザー名 = '***'
パスワード = '***'

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()

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート