Pythonでメールを送信する簡単なスクリプト
11787 ワード
Emails 今日では、人から人へ簡単にファイルの転送に適している形式的なコミュニケーションの一般的な方法です.ほとんどの人は、インターネット上のいくつかのアイデンティティを持っているか、単にそれを使用して、彼自身の電子メールのIDを持って、それをするGmail or outlook .
今ではPythonで行うことができるすべての素晴らしいものは、それらの1つを送信するか、または受信することですemails . Pythonプログラミング
ライブラリをメールを送信したり、メールアカウント内のすべてのメールを一覧表示するために使用することができます.また、いくつかの基本的な動作を実行することもできます.
そして、このブログでは、私はあなたを表示するつもりです.
メールサーバーについて
コーディング部分から始める前に、いくつかの基本が必要です
メールとメールサーバに関する情報.
メールサーバは基本的には管理用のサーバであるemails , Outlook , Gmail , Yahoo、Hotmailなどのメールサービスを管理する独自のメールサーバーがあります.メールサーバは、さらに2つのカテゴリーに分類されることができます;
SMTPサーバ
SMTPはSimple Mail Transfer Protocol .このサーバーは、サーバーからサーバーへのメールの送信や転送を担当しています.メールを送信するたびに、SMTPサーバーを使用します.
IMAPサーバ
IMAPスタンドInternet Message Access Protocol .このサーバーは、あなたのサーバーからメールを保存し、リストするために責任がありますGmail or Outlook , 通常、IMAPサーバーを使用します.
SSLとTLS
使用する暗号化プロトコルの2種類があります
emails , SSLSecure Socket Layer ) とTLSTransport Layer Security ).
すべてのメールサーバーに接続するたびに、これらのプロトコルのいずれかを介して接続されます.各プロトコルはそのポートをサーバに割り当てます.
TLS -ポート587
SSL -ポート465
Although Gmail and Outlook サーバは両方のこれらのプロトコルをサポートします、我々は単純のためにこのポストでTLSプロトコルだけを使用するつもりです.
Pythonを使用したメールの送信
メールサーバーについて明確になったので、Pythonを使ってメールを送信する最初のスクリプトを作成しましょう
ライブラリのインストール
Pythonのsmtplibライブラリを使って送信します.Gmail or Outlook メール.このライブラリはPythonで組み込まれていますので、他の場所からダウンロードする必要はありません.
スクリプトの作成
スクリプトがどのように見えるかは、ここにあります
スクリプトは複雑に見えるかもしれませんが、スクリプトの各機能とクラスを議論して、その使用を理解します
スクリプトはsmtplibとgetpassライブラリをインポートすることから始まります.私たちは、getpassライブラリを使って、パスワードを
ユーザ.
その後、私たちは、メールを送信するために使用されるメールアカウントの資格情報を入力するユーザーを求める.getpassを使用してユーザにパスワードを問い合わせる.Getpassを使用しているので、ユーザーが入力するパスワードは画面に表示されず、変数内で保存されます.
次のステップでは、SMTPサーバのホストとポートを設定します.入力された電子メールIDがGmail アカウントはホストに設定されますGmail SMTPサーバOutlook , OST
に設定されますOutlook SMTPサーバ
SSLとTLSの見出しの中で上記のようにポートを587に設定しました.入力された電子メールIDが識別できない場合Gmail or
Outlook , スクリプトはエラーメッセージを与え、終了します.
次の手順では、SMTPクラスオブジェクトを作成します.smtplibのオブジェクトを作成します.SMTPクラスと名前'サーバー'でオブジェクトを保存します.クラスオブジェクトには2つのパラメータ、ホスト名、ポートが必要です.畝
オブジェクトを作成したら、基本的にクラスオブジェクトのehlom ()関数を呼び出します.これは基本的に、メールサーバに挨拶メッセージを送るために使用されます.このステップは重要です、このステップを実行しないので、メールサーバと通信する際に問題を引き起こすかもしれません.畝
サーバからの応答を受け取った後、startls ()関数を呼び出してTLS暗号化を開始します.このステップは、TLS接続だけでなく、SSL接続に必要です.
この後、login ()関数をメールアカウントにログインします.この関数は、ユーザから取得したメールIDとパスワードを2つ必要とします.
ログインが成功したら、受信者のメールID、メールの件名、メール本文に対してユーザーに問い合わせてください.
そして最後に、sendmail ()関数を呼び出し、送信者メールID、受信者メールID、メール本文(メール件名とメール内容をマージすることによって作成された)を渡します.
ここでは完全なコード
import smtplib
import getpass
# Get email ID and password from user
email = input("Enter email ID: ")
password = getpass.getpass("Enter password: ")
# Set SMTP host and port
if "gmail" in email:
host = "smtp.gmail.com"
port = 587
elif "outlook" in email:
host = "smtp-mail.outlook.com"
port = 587
else:
print("Invalid email ID, please try again")
exit(0)
# Create SMTPLib object and contact server
server = smtplib.SMTP(host, port)
check = server.ehlo()
if check[0] == 250:
print("Successfully contacted mail server")
else:
print("Unable to contact server")
exit(0)
# Start TLS encryption (only to be done if conencting to port 587 i.e. TLS)
server.starttls()
# Logging into the server
try:
server.login(email, password)
print("Login successful")
except smtplib.SMTPAuthenticationError as ex:
print("Exception:", ex)
exit(0)
# Get email details from user
sender_mail = email
receiver_email = input("Enter receiver's email: ")
subject = input("Enter email subject: ")
content = input("Enter email content: ")
# Create email body by merging emails object and content
body = "Subject: " + subject + '\n' + content
# Send the mail
output = server.sendmail(sender_mail, receiver_email, body)
if not len(output):
print("Send mail successfully")
else:
print("Unable to send mail, please try again")
exit(0)
そして、それは、あなたが正常にPython結論
このブログでは、Pythonを通してメールを送信しました.私はすぐにIMAPサーバーをPythonを使用して連絡することにより、アカウントからメールへのアクセスに対処する別のブログを作成します.
このブログが好き
滞在安全、滞在祝福、および読書のおかげで.
Reference
この問題について(Pythonでメールを送信する簡単なスクリプト), 我々は、より多くの情報をここで見つけました https://dev.to/visheshdvivedi/simple-script-to-send-emails-in-python-11eeテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol