SMTP は電子メールを送信するためのプロトコルです。Python には SMTP のサポートが組み込まれており、プレーン テキストの電子メール、HTML メール、および添付ファイル付きの電子メールを送信できます。
Python は、smtplib と email という 2 つのモジュールで SMTP をサポートしています。email は電子メールの構築を担当し、smtplib は電子メールの送信を担当します。
例:
1. Python を使用してプレーンテキスト形式と HTML 形式で電子メールを送信します。
email.mime.text email.utils msg = MIMEText(message, , ) msg[] = formataddr([,]) msg[] = formataddr([,]) msg[] = server = smtplib.SMTP(, 25 server.login(, server.sendmail(, [ u u == cpu = 100 disk = 500 mem = 50 i range(1 cpu > 90 alert = u disk > 90 alert = u mem > 80 alert = u email(alert)
#Python发送HTML格式的邮件与发送纯文本消息的邮件不同之处就是将MIMEText中_subtype设置为html
1 msg = MIMEText('<html><body><h1 id="Hello">Hello</h1>' +2 '<p>send by <a href="http://www.python.org">Python</a>...</p>' +3 '</body></html>', 'html', 'utf-8')
2. Python は添付ファイル付きの電子メールを送信します。
添付ファイル付きの電子メールを送信するには、まず MIMEMultipart() インスタンスを作成する必要があります。複数の添付ファイルがある場合、添付ファイルを順次作成し、最終的に smtplib.smtp を使用して送信できます。
1 #!/usr/bin/env python 2 #coding:utf-8 3 4 import smtplib 5 from email.mime.text import MIMEText 6 from email.utils import formataddr 7 from email.mime.multipart import MIMEMultipart 8 9 def email(message):10 11 msg = MIMEMultipart()12 msg['From'] = formataddr(["管理员",'ylemail2012@sina.cn'])13 msg['To'] = formataddr(["Saneri",'349622541@qq.com'])14 msg['Subject'] = "Zabbix报警系统!"15 msg.attach(MIMEText(message, 'plain', 'utf-8'))16 17 #---这是附件部分---18 # 构造附件1,文本类型附件19 att1 = MIMEText(open('test.txt', 'rb').read(), 'base64', 'utf-8')20 att1["Content-Type"] = 'application/octet-stream'21 # 这里的filename可以任意写,写什么名字,邮件中显示什么名字22 att1["Content-Disposition"] = 'attachment; filename="test.txt"'23 msg.attach(att1)24 25 # 构造附件2,jpg类型附件26 from email.mime.application import MIMEApplication27 att2 = MIMEApplication(open('001.jpg','rb').read())28 att2.add_header('Content-Disposition', 'attachment', filename="001.jpg")29 msg.attach(att2)30 #构造附件3,pdf类型附件31 att3 = MIMEApplication(open('test.pdf','rb').read())32 att3.add_header('Content-Disposition', 'attachment', filename="test.pdf")33 msg.attach(att3)34 #构造附件4,xlsx类型附件35 att4 = MIMEApplication(open('test.xlsx','rb').read())36 att4.add_header('Content-Disposition', 'attachment', filename="test.xlsx")37 msg.attach(att4)38 #构造附件5,mp3类型附件39 att5 = MIMEApplication(open('test.mp3','rb').read())40 att5.add_header('Content-Disposition', 'attachment', filename="test.mp3")41 msg.attach(att5)42 43 try:44 server = smtplib.SMTP("smtp.sina.com", 25)45 #set_debuglevel(1)可以打印出和SMTP服务器交互的所有信息46 #server.set_debuglevel(1)47 #login()方法用来登录SMTP服务器48 server.login("ylemail2012@sina.cn","password")49 #sendmail()方法就是发邮件,由于可以一次发给多个人,所以传入一个list,邮件正文是一个str,as_string()把MIMEText对象变成str50 server.sendmail('ylemail2012@sina.cn', ['349622541@qq.com',], msg.as_string())51 print u"邮件发送成功!"52 server.quit()53 except smtplib.SMTPException:54 print u"Error: 无法发送邮件"55 if name == 'main':56 cpu = 10057 disk = 50058 mem = 5059 for i in range(1):60 if cpu > 90:61 alert = u"CPU出问题!"62 email(alert)63 if disk > 90:64 alert = u"硬盘出问题!"65 email(alert)66 if mem > 80:67 alert = u"内存出问题!"68 email(alert)
3.HTML本文に画像を追加する
一般のメールサービスプロバイダーがメールのHTML本文に外部リンクを追加することは無効です。正しくブレークスルーを追加する例は次のとおりです:
1 #!/usr/bin/env python 2 #coding:utf-8 3 4 import smtplib 5 from email.mime.multipart import MIMEMultipart 6 from email.mime.text import MIMEText 7 from email.mime.image import MIMEImage 8 from email.utils import formataddr 9 10 def email():11 msg = MIMEMultipart()12 msg['From'] = formataddr(["管理员",'ylemail2012@sina.cn'])13 msg['To'] = formataddr(["Saneri",'349622541@qq.com'])14 msg['Subject'] = "Zabbix报警系统!"15 msg.attach(MIMEText('<b>Some <i>HTML</i> text</b> and an image.<br><img src="/static/imghwm/default1.png" data-src="cid:image1" class="lazy" alt="Python SMTPメールモジュールの詳しい説明" ><br>good!','html','utf-8'))16 17 fp = open('001.jpg', 'rb')18 msgImage = MIMEImage(fp.read())19 fp.close()20 msgImage.add_header('Content-ID', '<image1>')21 msg.attach(msgImage)22 try:23 server = smtplib.SMTP("smtp.sina.com", 25)24 server.login("ylemail2012@sina.cn","password")25 server.sendmail('ylemail2012@sina.cn', ['349622541@qq.com',], msg.as_string())26 print u"邮件发送成功!"27 server.quit()28 except smtplib.SMTPException:29 print u"Error: 无法发送邮件"30 31 if name == 'main':32 email()
4. HTML 形式とプレーン形式の両方をサポートします
HTML メールを送信すると、受信者はブラウザや Outlook などのソフトウェアを介して通常どおりメールの内容を閲覧できますが、受信者のデバイスが古すぎて HTML メールを表示できない場合はどうすればよいでしょうか。
HTML送信時にプレーンテキストを添付する方法で、受信者がHTML形式でメールを閲覧できない場合は、自動的にダウングレードしてプレーンテキストメールを閲覧することができます。
活用MIMEMultipart
就可以组合一个HTML和Plain,要注意指定subtype是alternative
:
1 msg = MIMEMultipart('alternative')2 msg['From'] = ...3 msg['To'] = ...4 msg['Subject'] = ...5 6 msg.attach(MIMEText('hello', 'plain', 'utf-8'))7 msg.attach(MIMEText('<html><body><h1 id="Hello">Hello</h1></body></html>', 'html', 'utf-8'))8 # 正常发送msg对象...
【関連する推奨事項】
1. Python で SMTP を使用してメールを送信する例の詳細な紹介
2. Python で SMTP を使用してメールを送信するためのコードの概要
4. Python は電子メールを送信するために SMTP を使用します
7.Python smtplib SSL/TLS セキュアメール送信モジュールの例
以上がPython SMTPメールモジュールの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

numpyarraysarasarebetterfornumeroperations andmulti-dimensionaldata、whilethearraymoduleissuitable forbasic、1)numpyexcelsinperformance and forlargedatasentassandcomplexoperations.2)thearraymuremememory-effictientivearientfa

NumPyArraySareBetterforHeavyNumericalComputing、whilethearrayarayismoreSuitableformemory-constrainedprojectswithsimpledatatypes.1)numpyarraysofferarays andatiledance andpeperancedatasandatassandcomplexoperations.2)thearraymoduleisuleiseightweightandmemememe-ef

ctypesallowsinging andmanipulatingc-stylearraysinpython.1)usectypestointerfacewithclibrariesforperformance.2)createc-stylearraysfornumericalcomputations.3)passarraystocfunctions foreffientientoperations.how、how、becuutiousmorymanagemation、performanceo

Inpython、「リスト」は、「リスト」、自由主義的なもの、samememory効率が高く、均質な偶然の瞬間の想起された「アレイ」の「アレイ」の「アレイ」の均質な偶発的な想起されたものです

pythonlistsandarraysaraybothmutable.1)listsareflexibleandsupportheTeterdatabutarlessmemory-efficient.2)Arraysaremorememory-efficientiant forhomogeneousdative、ressivelessatile、ressing comerttytytypecodeusageodoavoiderorors。

PythonとCにはそれぞれ独自の利点があり、選択はプロジェクトの要件に基づいている必要があります。 1)Pythonは、簡潔な構文と動的タイピングのため、迅速な開発とデータ処理に適しています。 2)Cは、静的なタイピングと手動メモリ管理により、高性能およびシステムプログラミングに適しています。

PythonまたはCの選択は、プロジェクトの要件に依存します。1)迅速な開発、データ処理、およびプロトタイプ設計が必要な場合は、Pythonを選択します。 2)高性能、低レイテンシ、および緊密なハードウェアコントロールが必要な場合は、Cを選択します。

毎日2時間のPython学習を投資することで、プログラミングスキルを効果的に改善できます。 1.新しい知識を学ぶ:ドキュメントを読むか、チュートリアルを見る。 2。練習:コードと完全な演習を書きます。 3。レビュー:学んだコンテンツを統合します。 4。プロジェクトの実践:実際のプロジェクトで学んだことを適用します。このような構造化された学習計画は、Pythonを体系的にマスターし、キャリア目標を達成するのに役立ちます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









