こんにちは、さすを(@sasuwo0409)です。
いきなりですが、
定期的なメール連絡がめんどくさい!
形式的なメールを自動化したい!
雑務を減らしたい!
と思ってはいませんか?
今回の記事は、Pythonを使ってgmailを送信する方法を解説していきます。
この記事を読めば、形式的なメールを送るわずらわしさから解放されることでしょう!
それでは本文をどうぞ。
定期的にメールを送信しないといけないんだけど、めんどくさいな。
LINE公式みたいに手軽に送信できればいいのになあ。
これらの悩みを解決します!
※0円のサンプルテキストという近道
独学よりプログラミングスクールの方が効果は出やすいですが、値段が高く、なかなか手を出しづらいですよね。techgymでは無料のサンプルテキストと解説動画をもらえるので、これを使ってお得にPythonの基礎を学ぶのもオススメです。
最短1分でできる!
1.Pythonでgmailを送信する方法
Pythonを使ってgmailを送信するための手順は以下の2ステップです。
- Googleアカウントの設定をする
- プログラムをつくる
それでは始めていきましょう!
1-1.Googleアカウントの設定をする
Pythonを使ってgmail送信を行うためには、Googleアカウントが必要です。
Googleアカウントがない方は、作成しておきましょう。
また、Pythonからメール送信を行うには、「2要素認証」というセキュリティを解除しなくてはなりません。
今使っているアカウントをお持ちでも、「万が一何かあったら困る、、」という方はPythonメール送信用にアカウントを作成しておくのがおすすめです。
僕も不安だったので、新アカウントをつくりました!
Googleアカウントの準備ができたら、セキュリティを変更していきます。
変更箇所は以下の2つです。
- 「2段階認証プロセス」をオフにする
- 「安全性の低いアプリの許可」を「有効」に設定する
「2段階認証プロセス」をオフにする
Googleアカウントのアイコンを押し、「Googleアカウントを管理」ボタンを押します。
「セキュリティ」タブを押します。
「Googleへのログイン」の「2段階認証プロセス」を押します。
「オフにする」を押します。
「安全性の低いアプリの許可」を「有効」に設定する
Googleアカウントのアイコンを押し、「Googleアカウントを管理」ボタンを押します。
「セキュリティ」タブを押します。
「安全性の低いアプリのアクセス」の「アクセスを有効にする(非推奨)」を押します。
「安全性の低いアプリの許可」を有効にします。
Googleの設定はこれでOKです!
1-2.プログラムをつくる
Googleアカウントの設定の変更が完了したので、ここからはプログラムをつくっていきましょう。
添付ファイルがない場合
#send_gmail.py:
import smtplib
import ssl
from email.mime.text import MIMEText
try:
#自分のgmailアドレス
gmail_account = "xxxxxxxxxx@gmail.com"
#自分のGoogleアカウントのパスワード
gmail_password = "xxxxxxxxxx"
#メールの送信先
mail_to = "xxxxxxxxxx@gmail.com"
#メールデータ(MIME)の作成
#件名
subject = "ここに件名を入力します。"
#本文
body = "ここに本文を入力します。"
msg = MIMEText(body, "html")
msg["Subject"] = subject
msg["To"] = mail_to
msg["From"] = gmail_account
#Gmailに接続
server = smtplib.SMTP_SSL("smtp.gmail.com", 465,
context=ssl.create_default_context())
server.login(gmail_account, gmail_password)
server.send_message(msg) # メールの送信
print("送信完了しました。")
except Exception as e:
print(e)
finally:
print("処理が終了しました。")
添付ファイルがある場合
#send_gmail_attachment.py:
import smtplib
import ssl
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email import encoders
try:
#自分のgmailアドレス
gmail_account = "xxxxxxxxxx@gmail.com"
#自分のGoogleアカウントのパスワード
gmail_password = "xxxxxxxxxx"
#メールの送信先
mail_to = "xxxxxxxxxx@gmail.com"
#添付ファイルのパス(ZIPファイルで指定)
file_path = "xxxxxxxxxx\\xxxxxxxxxx\\xxxxx.zip"
#メールデータ(MIME)の作成
#件名
subject = "ここに件名を入力します。"
#本文
body = "ここに本文を入力します。"
encoding = 'utf-8'
msg = MIMEMultipart()
msg["Subject"] = Header(subject, encoding)
msg["To"] = mail_to
msg["From"] = gmail_account
msg.attach(MIMEText(body, 'plain', encoding))
#添付ファイル(ZIP)をメールに追加
attach = MIMEBase('application','zip')
with open(file_path, "br") as f:
attach.set_payload(f.read())
encoders.encode_base64(attach)
attach.add_header('Content-Disposition', 'attachment',
filename='attachment.zip')
msg.attach(attach)
#gmailに接続
server = smtplib.SMTP_SSL("smtp.gmail.com", 465,
context=ssl.create_default_context())
server.login(gmail_account, gmail_password)
server.send_message(msg) # メールの送信
server.quit()
print("送信完了しました。")
except Exception as e:
print(e)
finally:
print("処理が終了しました。")
これで送信できる準備は整いました!
1-3.送信・受信できているかの確認
それでは、ターミナルを開いてPythonを使って自動でメール送信できているか確認しましょう。
検索欄に「cmd」と入力し、コマンドプロンプトを開きます。
Pythonスクリプトを実行します。
実行結果はこちらです!
無事にメール送信できていました!
2.Pythonを使ってgmailを送信するときの注意点
Pythonを使ってgmailを送信するときに注意しなくてはいけないことがあります。
それは、「連続でメールを送信する場合には、一定の待ち時間を入れる」ということです。
短時間に連続してメールを送信すると、Google側でスパムの大量送信と間違われる可能性があり、メールが受信側に届かなくなることがあるので要注意です。
Gmail の効率性とアカウントの安全性を維持するために、ユーザーが受信できるメール数には上限が設けられています。
Google Workspace における Gmail の受信制限
上限に達したアカウントでは新しいメールを受信できなくなります。また、検索速度が遅くなるなど、アカウントの全般的な問題が発生する場合があります。新たに届くメールはすべて送信者に返送されます。
Gmailのユーザーが受信できるメール数の上限は以下の通りです(2022年1月23日現在)。
1分あたり | 60 |
1時間あたり | 3,600 |
1日あたり | 86,400 |
サイズ制限 | 最大50MB |
添付ファイルの制限 | 1件のメール受信で500個まで |
一定の待ち時間を入れるには、以下のコードを入れればOKです。
#1行目:
import time
#『print("送信完了しました。")』の下の行:
time.sleep(2)
time.sleepのかっこの中は、待ち時間の秒数なので2より大きい数字ならOKです!
2-1.添付ファイルが25MBを越えて送信できない場合
添付ファイルが25MBを越えて送信できない時は、Googleドライブで共有すれば大丈夫です。
また、どうしてもGmailに添付して送りたい場合は、送信したい添付ファイルをGoogleドライブに上げてからGmailに添付すればOKです。
>>Google ドライブのファイルを Gmail に添付する
2-2.エラー続きで挫折しそうなとき
Pythonスキルを習得するためには、正しい学習方法で学ぶことが大切です。
あなたにあった学習方法で、スキルアップを目指してがんばってください。
独学編:
Pythonスキルを独学で身に着けるためには、参考書が必須です。
おすすめのPython書籍を以下の記事で解説したので、参考にしていただけたらと思います。
また、本を買う前に、一度Pythonの学習をしてみたいという方は、Pythonを学べるおすすめ学習サイトを以下の記事で解説したので、こちらも参考にしてみてください。
>>【料金別&徹底解説】 Pythonおすすめ勉強サイト8選【楽しく学ぼう】
スクール編:
お金がかかってもいいから、少しでも早くPythonスキルを身につけたい方は、TechAcademy(テックアカデミー)のPythonコースがおすすめです。
独学でやるよりもスクールに通った方が、圧倒的に速いスピードでスキルを習得することができます。
値段は独学よりも高くなりますが、エンジニアになれば、受講料は1か月で回収できるので、問題なしです。
本気でPythonスキルを身につけたい方は、スクールで一気にスキルを身に着けるのもありでしょう。
>>TechAcademy(テックアカデミー)のPythonコースはこちら
最後に:無駄な時間を減らして人生をより良くしよう
Pythonを使ってgmailを送信する方法を詳しく解説してきました。
毎日のちょっとした無駄をなくすことができれば、あなたの人生はより充実したものになります。
形式的なメールはPythonにお願いして、空いた時間でコーヒーでも飲んで休憩しちゃいましょう!
この記事が少しでもあなたの役に立っていたらうれしいです!
それでは!
最短1分でできる!
>>【無料】Pythonでできること9選【初心者でも稼げます】
>>【徹底解説】Pythonエンジニアに転職する方法【失敗しない方法を詳しく解説】
>>【これだけ知っておけばOKです】 現役エンジニアもよく使う便利なPythonライブラリ22選
コメント