SMTP(Simple Mail Transfer Protocol)は、Simple Mail Transfer Protocolであり、送信元アドレスから宛先アドレスにメールを転送するために使用される一連のルールであり、メールの転送方法を制御します。
Pythonのsmtplibは、メールを送信するための非常に便利な方法を提供します。 smtpプロトコルをカプセル化するだけです。
SMTPオブジェクトの構文は次のとおりです。
import smtplib
smtpObj = smtplib.SMTP([host [, port [, local_hostname]]])
パラメータの説明:
Python SMTPオブジェクトは、sendmailメソッドを使用してメールを送信します。構文は次のとおりです。
SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])
パラメータの説明:
ここで、3番目のパラメーターに注意する必要があります。msgは文字列であり、メールを意味します。メールは通常、タイトル、送信者、受信者、メールの内容、添付ファイルなどで構成されています。メールを送信するときは、メッセージの形式に注意してください。この形式は、smtpプロトコルで定義されている形式です。
例
次の実装例では、sendmailなどのSMTPをサポートするサービスがマシンにインストールされている必要があります。
import smtplib
from email.mime.text import MIMEText
from email.header import Header
sender ='[email protected]' #送信者
receiver ='[email protected]' #レシーバー
# 3つのパラメーター:1つ目はテキストの内容、2つ目のプレーンはテキスト形式を設定し、3つ目はutfです。-8エンコーディングを設定する
message =MIMEText('QQは163のようなテストファイルを送信します....','plain','utf-8')
message['From']=Header('Pythonチュートリアル...') #送信者
message['To']=Header('テスト','utf-8') #受信者
subject ='PythonSMTPテスト'
message['subject']=Header('utf-8')try:
smtpObj = smtplib.SMTP('localhost')
smtpObj.sendmail(sender, receiver, message.as_string())print("メールは正常に送信されました")
except smtplib.SMTPException:print("Error:メールを送信できません")
# メールは正常に送信されました
マシンにsendmailアクセスがない場合は、他のメールサービスプロバイダー(QQ、Netease、Googleなど)のSMTPアクセスを使用することもできます。
import smtplib
from email.mime.text import MIMEText
from email.header import Header
# サードパーティのSMTPサービス
host="smtp.qq.com" #サーバーをセットアップする
user="973708513" #ユーザー名
password="xxxxxx" #パスワード
sender ='[email protected]' #送信者
receiver ='[email protected]' #レシーバー
# 3つのパラメーター:1つ目はテキストの内容、2つ目のプレーンはテキスト形式を設定し、3つ目はutfです。-8エンコーディングを設定する
message =MIMEText('QQは163のようなテストファイルを送信します....','plain','utf-8')
message['From']=Header('Pythonチュートリアル...') #送信者
message['To']=Header('テスト','utf-8') #受信者
subject ='PythonSMTPテスト'
message['subject']=Header('utf-8')try:
smtpObj = smtplib.SMTP()
smtpObj.connect(host,465) #25はSMTPポート番号です
smtpObj.login(user,password)
smtpObj.sendmail(sender, receiver, message.as_string())print("メールは正常に送信されました")
except smtplib.SMTPException:print("Error:メールを送信できません")
# メールは正常に送信されました
上記は、PythonによるSMTPメール送信の実装の詳細な内容です。PythonSMTPの詳細については、ZaLou.Cnの他の関連記事に注意してください。
Recommended Posts