


Python を使用して電子メールを送信する 2 つの例 (Python での電子メールの添付ファイルの送信は、電子メール モジュールを使用して実装できます)
Python の電子メール モジュールを使用して、添付ファイル付きの電子メールを送信できます。
SMTP (Simple Mail Transfer Protocol)
メール転送エージェント (MTA) プログラムは、SMTP プロトコルを使用して受信者のメール サーバーに電子メールを送信します。 SMTP プロトコルは電子メールの送信にのみ使用でき、電子メールの受信には使用できません。ほとんどの送信メール サーバー (送信メール サーバー) は SMTP プロトコルを使用します。 SMTP プロトコルのデフォルトの TCP ポート番号は 25 です。
SMTP プロトコルの重要な機能は、電子メールを中継する機能です。これは 2 つの状況で機能します。1 つは電子メールがクライアントからサーバーに送信されるとき、もう 1 つは電子メールが 1 つのサーバーから別のサーバーに送信されるときです。
POP3 (ポスト オフィス プロトコル) と IMAP (インターネット メッセージ アクセス プロトコル)
POP プロトコルと IMAP プロトコルは、電子メールの受信に使用される 2 つの最も一般的なプロトコルです。ほとんどすべてのメール クライアントとサーバーは両方のプロトコルをサポートしています。
POP3 プロトコルは、ユーザーにメールボックスにアクセスして電子メールを取得するための簡単で標準的な方法を提供します。 POP3 プロトコルを使用する電子メール クライアントの通常の作業プロセスは、サーバーに接続し、すべてのメッセージを取得してユーザーのホストに保存し、サーバーからメッセージを削除して切断します。 POP3 プロトコルのデフォルトの TCP ポート番号は 110 です。
IMAP プロトコルは、ユーザーがオフラインで読むことを可能にする便利な電子メール ダウンロード サービスも提供します。 IMAP プロトコルを使用する電子メール クライアントは通常、ユーザーが明示的に削除するまでメッセージをサーバー上に保持します。この機能により、複数のクライアントが同時にメールボックスを管理できるようになります。 IMAP プロトコルには概要閲覧機能があり、ユーザーは電子メールの到着時刻、件名、送信者、サイズなどの情報をすべて読んだ上で、ダウンロードするかどうかを決定できます。 IMAP プロトコルのデフォルトの TCP ポート番号は 143 です。
電子メール形式 (RFC 2822)
各電子メールには、ヘッダーと本文の 2 つの部分があり、空白行で区切られています。
電子メール ヘッダーの各フィールド (フィールド) には、コロンで区切られたフィールド名とフィールド値の 2 つの部分が含まれます。注意すべき 2 つのフィールドがあります: From フィールドと Sender フィールドです。 From フィールドは電子メールの作成者を示し、Sender フィールドは電子メールの送信者を示します。 From フィールドに複数の作成者が含まれる場合は、Sender フィールドを指定する必要があります。From フィールドの作成者が 1 人のみで、作成者と送信者が同じ場合は、Sender フィールドを使用しないでください。それ以外の場合は、From フィールドと Sender フィールドを指定する必要があります。同時に使用する必要があります。
電子メールの本文には電子メールのコンテンツが含まれており、そのタイプは電子メール ヘッダーの Content-Type フィールドで指定されます。 RFC 2822 で定義された電子メール形式では、電子メールの本文は単なる ASCII エンコードされた文字シーケンスです。
MIME (多目的インターネットメール拡張機能) (RFC 1341)
MIME は、非 ASCII エンコードテキスト、非テキスト添付ファイル、および複数の部分 (マルチパート) を含む電子メール本文をサポートするために電子メール形式を拡張します。
Python メール モジュール
1. クラスメール.メッセージ.メッセージ
__getitem__、__setitem__ は、obj[key] の形式でアクセスを実装します。
Msg.attach(playload): 現在のメッセージにプレイロードを追加します。
Msg.set_playload(playload): Msg オブジェクト全体のメール本文を playload に設定します。
Msg.add_header(_name, _value, **_params): 電子メールのヘッダー フィールドを追加します。
2. class email.mime.base.MIMEBase(_maintype, _subtype, **_params)
すべての MIME クラスの基本クラスは、email.message.Message クラスのサブクラスです。
3. クラス email.mime.multipart.MIMEMultipart()
電子メール モジュールのバージョン 3.0 (Python 2.3 ~ Python 2.5) では、このクラスは email.MIMEMultipart.MIMEMultipart にあります。
このクラスは MIMEBase の直接のサブクラスであり、マルチパートの電子メール本文を含む MIME オブジェクトを生成するために使用されます。
4. クラス email.mime.text.MIMEText(_text)
文字列 _text を使用して、MIME オブジェクトの本文テキストを生成します。
コードの実装
!/usr/bin/env python
# -*- コーディング: UTF-8 -*-
from email.mime.multipart import MIMEMultipart
from email.mime .base import MIMEBase
from email.mime.text import MIMEText
# python 2.3.*: email.Utils email.Encoders
from email.utils import COMMASPACE,formatdate
from email import encoders
import os
#server['name'],server['user'],server['passwd']
def send_mail(server, fro, to, subject, text, files=[]):
assert type(server) == dict
assert type(to) == list
assert type(files) == list
msg = MIMEMultipart ()
msg['From'] = fro
msg['Subject'] = subject
msg['To'] = COMMASPACE.join(to) #COMMASPACE==', '
msg['Date'] = formatdate(localtime=True)
msg.attach(MIMEText(text))
ファイル内のファイルの場合:
part = MIMEBase('application', 'octet- stream') #'octet-stream': バイナリデータ
part.set_payload(open(file, 'rb'.read()))
encoders.encode_base64(part)
part.add_header('Content -性質」、「愛着」。 filename="%s"' % os.path.basename(file))
msg.attach(part)
import smtplib
smtp = smtplib.SMTP(server['name'])
smtp.login(server['user'], server['passwd'])
smtp.sendmail(fro, to, msg.as_string())
smtp.close()
Python を利用した smtplib库实现邮件送信
import smtplib
def sendmail():
try:
smtp=smtplib.SMTP(HOST)
smtp.login(USER,PASSWORD) #登录邮箱
smtp.sendmail(USER+"@"+PROFIX,TO,MSG) #発信邮件
smtp.quit( )
print 'メール送信成功'
例外、e:
print e
print 'メール送信失敗'
アイテムは送信できます
その後学习了一点定义msg
python 中に有几个类库生成丰富的 msg 格式
总结一简単的 MIMEText,可以编辑许多邮件头情報,可编辑邮件格式
メールから.MIMEText import MIMEText
msg=MIMEText("要送信内容","格式,例:html,plain","编码,例:gb2312,utf-8")
msg['From']= '邮件中に表示される送信者の名前'
msg['To']='邮件中に表示される送信者の名前'
msg['Subject']='邮件标题'
これらの都は、不設置

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

Investing.comの反クラウリング戦略を理解する多くの人々は、Investing.com(https://cn.investing.com/news/latest-news)からのニュースデータをクロールしようとします。

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...
