Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonのSMTPプロトコルクライアント(smtplib)


Pythonの標準ライブラリには、Pythonプログラムを介してメールを送信するために使用できるSMTPクライアントセッションオブジェクトを定義する「smtplib」モジュールがあります。

メールサーバーは、インターネットを介して電子メールを処理および配信するアプリケーションです。送信メールサーバーは、電子メール送信のインターネット標準であるSMTP(Simple MailTransfer Protocol)サーバーを実装します。

受信メールサーバーには、主に2つの種類があります。 POP3、またはポストオフィスプロトコルとIMAP、またはインターネットメッセージアクセスプロトコル。

smptlib.SMTP()関数

この関数は、SMTPクラスのオブジェクトを返します。 SMTPまたはESMTPサーバーへの接続をカプセル化して管理します。この関数のシグネチャでは、次の引数が定義されています-

ホスト
接続するリモートホストの名前である文字列。
ポート
接続するポートを指定する番号。デフォルトでは、smtplib.SMTP_PORTが使用されます。
local_hostname
HELO/EHLOコマンドでローカルホストのFQDNとして使用されます。
source_address
ソケットがバインドする2タプル(ホスト、ポート)オブジェクト
SMTP操作をサポートする次のメソッドがあります-

connect()-

このメソッドは、特定のポートでホストへの接続を確立します。

login()-

この関数は、ユーザー名とパスワードの引数を使用してSMTPサーバーにログインします。

quit()-

この関数はSMTPセッションを終了します。

data()-

この関数の「メッセージ」引数がサーバーに送信されます。

docmd ()−

この関数はコマンドを送信し、その応答コードを返します

ehlo ()-

この関数はサーバーを識別します。

starttls()-

この関数はTLSモードを開始します。

getreply ()-

この関数は、サーバーから応答コードの形式で応答を受け取ります。

putcmd ()-

この関数はサーバーにコマンドを送信します。

send_message()-

この関数は、メッセージをバイト文字列に変換し、メールを送信するために渡します。

sendmail ()-

このコマンドは、メールトランザクション全体を実行します。

引数は-

です このメールを送信するアドレス。
このメールを送信するアドレスのリスト。
送信するメッセージ。
from_addr
to_addrs
msg

以下のコードは、GmailのSMTPサーバーを使用してメールを送信します。 SMTPオブジェクトは、ポート527でGmailのSMTPサーバーを使用します。ehlo()コマンドはサーバーを識別します。また、送信メールメッセージに対してトランスポート層セキュリティをアクティブにします。

次に、login()コマンドは、クレデンシャルを引数として渡すことによって呼び出されます。最後に、メールメッセージは、所定の形式のヘッダーを添付してアセンブルされ、sendmail()メソッドを使用して送信されます。その後、SMTPオブジェクトは閉じられます。

import smtplib
content="HelloWorld"
mail=smtplib.SMTP('smtp.gmail.com',587)
mail.ehlo()
mail.starttls()
sender='[email protected]'
recipient='[email protected]'
mail.login('[email protected]','m15v5l61')
header='To:'+receipient+'\n'+'From:'\
+sender+'\n'+'subject:testmail\n'
content=header+content
mail.sendmail(sender,recipient, content)
mail.close()


上記のスクリプトを実行する前に、送信者のGmailアカウントに「安全性の低いアプリ」へのアクセスが提供されていることを確認してください。

https://myaccount.google.com/lesssecureapps

表示されているトグルボタンをオンに設定します。

PythonのSMTPプロトコルクライアント(smtplib)

上記の設定を行った後、上記のスクリプトを実行してください。メッセージは受信者の受信トレイに配信される必要があります。


  1. SMTPメールを送信するようにWordPressを設定する方法

    WordPressは、Webプレゼンスを簡単にデザインできるすべての品質を備えていますが、特定の領域では依然として問題があります。問題のある問題の1つは、SMTPを使用して電子メールを送信することです。これは、WooCommerceプラットフォームプラグインを介してアイテムを販売している場合、または単に定期的に顧客、メンバー、またはユーザーと通信する必要がある場合に特に厄介です。 MailgunやGoogleAppsなど、この問題を解決するために利用できるサードパーティのソリューションはたくさんありますが、これらは有料アプリであり、すべての人がそのようなソリューションに専念できるリソースを持

  2. Outlookをデフォルトのメールクライアントとして設定する方法

    Outlookをインストールした後(バージョンは関係ありません)、デフォルトのクライアントとして認識されない可能性があります。メールの雑用を処理するときに複数のメールプログラムにジャンプする代わりに、Outlookをメールの送受信のデフォルトの停止にしないのはなぜですか? Window 10を使用している場合は、新しいデフォルトの電子メールクライアントとして新しいメールアプリを使用していることに気づきました。新しいデフォルトのメールアプリの大ファンではない可能性が高いため、メールリンク(MailTo)をクリックするたびにアプリに誘導されるのは面倒になる可能性があります。 Outlookがデ