ホームページ > バックエンド開発 > Python チュートリアル > Python を使用して電子メールを送信する 2 つの例 (Python での電子メールの添付ファイルの送信は、電子メール モジュールを使用して実装できます)

Python を使用して電子メールを送信する 2 つの例 (Python での電子メールの添付ファイルの送信は、電子メール モジュールを使用して実装できます)

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

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']='邮件标题'
これらの都は、不設置

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