Python を使用して電子メール転送を処理するプロトコルとして、Simple Mail Transfer Protocol (SMTP) が使用されます。電子メール サーバー間で電子メールをルーティングするために使用されます。これは、ユーザーが別のユーザーにメールを送信できるようにするアプリケーション層プロトコルです。受信者はプロトコルを使用して電子メールを取得します。 POP(ポストオフィスプロトコル) そして IMAP(インターネットメッセージアクセスプロトコル) 。
サーバーはクライアントからの TCP 接続をリッスンするときに、ポート 587 で接続を開始します。
YouTube VLCからビデオをダウンロード
Python が提供するのは、 smtplib モジュール。インターネット マシンに電子メールを送信するために使用される SMTP クライアント セッション オブジェクトを定義します。この目的のために、 smtplib import ステートメントを使用してモジュールを作成します。
$ import smtplib
SMTP オブジェクトは電子メール転送に使用されます。 smtplib オブジェクトの作成には次の構文が使用されます。
import smtplib smtpObj = smtplib.SMTP(host, port, local_hostname)
次のパラメータを受け入れます。
SMTP オブジェクトの sendmail() メソッドは、目的のマシンにメールを送信するために使用されます。構文を以下に示します。
smtpObj.sendmail(sender, receiver, message)
例
git status -s
#!/usr/bin/python3 import smtplib sender_mail = '[email protected]' receivers_mail = ['[email protected]'] message = '''From: From Person %s To: To Person %s Subject: Sending SMTP e-mail This is a test e-mail message. '''%(sender_mail,receivers_mail) try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender_mail, receivers_mail, message) print('Successfully sent email') except Exception: print('Error: unable to send email')
Gmailからメールを送信する
GmailのSMTPサーバーを利用してメールが送信される場合があります。この場合、ポート 587 のローカルホストを使用する代わりに、SMTP サーバーとして Gmail を渡すことができます。
次の構文を使用します。
$ smtpObj = smtplib.SMTP('gmail.com', 587)
ここでは、Gmail のユーザー名とパスワードを使用して Gmail アカウントにログインする必要があります。この目的のために、smtplib は送信者のユーザー名とパスワードを受け入れる login() メソッドを提供します。
メール
これにより、Gmail を使用している場合、安全性の低いアプリへのアクセスを要求される可能性があります。これを機能させるには、これを一時的にオンにする必要があります。
次の例を考えてみましょう。
例
Java配列
#!/usr/bin/python3 import smtplib sender_mail = '[email protected]' receivers_mail = ['[email protected]'] message = '''From: From Person %s To: To Person %s Subject: Sending SMTP e-mail This is a test e-mail message. '''%(sender_mail,receivers_mail) try: password = input('Enter the password'); smtpObj = smtplib.SMTP('gmail.com',587) smtpobj.login(sender_mail,password) smtpObj.sendmail(sender_mail, receivers_mail, message) print('Successfully sent email') except Exception: print('Error: unable to send email')
HTMLをメールで送信する
MIME バージョン、コンテンツ タイプ、文字セットを指定して HTML を送信することで、メッセージ内の HTML をフォーマットできます。
次の例を考えてみましょう。
例
#!/usr/bin/python3 import smtplib sender_mail = '[email protected]' receivers_mail = ['[email protected]'] message = '''From: From Person %s To: To Person %s MIME-Version:1.0 Content-type:text/html Subject: Sending SMTP e-mail <h3>Python SMTP</h3> <strong>This is a test e-mail message.</strong> '''%(sender_mail,receivers_mail) try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender_mail, receivers_mail, message) print('Successfully sent email') except Exception: print('Error: unable to send email')