質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

0回答

2456閲覧

pythonでgmail送信するときのアプリパスワードのログインが拒否される原因

satoshi.

総合スコア12

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/07/07 06:03

編集2022/01/12 10:55

前提・実現したいこと

gmailにExcelファイルを添付して送信するプログラムをpythonで作成したいと考えています。

gmailアカウントAでは作成したプログラムが問題なく動きましたが、
gmailアカウントBでは以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

Traceback (most recent call last): File "<ipython-input-12-d47c9bac69af>", line 1, in <module> runfile('C:/Users/******/.spyder-py3/cancellation_report.py', wdir='C:/Users/******/.spyder-py3') File "C:\Users******\AppData\Local\Continuum\anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 786, in runfile execfile(filename, namespace) File "C:\Users******\AppData\Local\Continuum\anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile exec(compile(f.read(), filename, 'exec'), namespace) File "C:/Users/******/.spyder-py3/cancellation_report.py", line 76, in <module> server.login(username, password) File "C:\Users******\AppData\Local\Continuum\anaconda3\lib\smtplib.py", line 730, in login raise last_exception File "C:\Users******\AppData\Local\Continuum\anaconda3\lib\smtplib.py", line 721, in login initial_response_ok=initial_response_ok) File "C:\Users******\AppData\Local\Continuum\anaconda3\lib\smtplib.py", line 642, in auth raise SMTPAuthenticationError(code, resp) SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted. Learn more at\n5.7.8 https://support.google.com/mail/?p=BadCredentials x26sm4079741pfq.69 - gsmtp')

該当のソースコード

# 以下にGmailの設定を書き込む★ --- (*1) username = '**********' password = '**********' # メールの送信先 --- (*2) to_addrs = '**********' cc_addrs = '**********' # 添付ファイルのパス(ZIPファイルで指定) --- (*3) file_path = "./**********.xlsx" # メールデータ(MIME)の作成 --- (*4) subject = '*************' body ='テスト' encoding = 'utf-8' msg = MIMEMultipart() msg["Subject"] = Header(subject, encoding) msg["To"] =to_addrs if cc_addrs != '': msg["Cc"] = cc_addrs msg["From"] = username msg.attach(MIMEText(body, 'plain', encoding)) # 添付ファイル(xlsx)をメールに追加 --- (*5) attach = MIMEBase('application','vnd.ms-excel') with open(file_path, "br") as f: attach.set_payload(f.read()) encoders.encode_base64(attach) attach.add_header('Content-Disposition', 'attachment', filename='********************') msg.attach(attach) # メールサーバーへアクセス smtp_host = 'smtp.gmail.com' smtp_port = 587 server = smtplib.SMTP(smtp_host, smtp_port) server.ehlo() server.starttls() server.ehlo() server.login(username, password) sendToList = to_addrs.split(','), cc_addrs.split(',') server.sendmail(username, sendToList, msg.as_string()) server.quit()

試したこと

gmailの二段階認証を設定の上、アプリパスワードをgmailアカウントA,Bともに取得して、まったく同じ環境にて動作確認を行いました。
ログインが拒否されたgmailアカウントBでは、アプリパスワードを再取得、再度動作確認をしましたが改善しませんでした。
"安全性の低いアプリへのアクセスを許可"は、Gsite管理者(社内システムを利用のため)によって操作ができなくなっています。
※gmailアカウントA,Bは、どちらも 同じドメインの「 G Suite 」アカウントとなります。

gmailアカウントAでは動作確認ができているために、gmailアカウントBの設定に原因があることまではわかっていますが、
アプリパスワードを取得しているにもかかわらずgmailにログイン拒否される理由がわかりません。
gmailアカウントA,Bの動作確認時に変更した箇所は、username,passwordのみです。

補足情報(FW/ツールのバージョンなど)

window7,10
anaconda3 2019.03(python3.7.3 64-bit)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2019/07/09 07:33

質問に記載されている gmailアカウント A と B というのは、どちらも 同じドメインの「 G Suite 」アカウントですか?
satoshi.

2019/07/09 08:02

ご質問下さいまして誠にありがとうございます。また、アカウントの所属ドメインが同一であるという状況を記載する必要性を認識できておりませんでした。ご指摘いただけましたこと重ねてお礼申し上げます。
CHERRY

2019/07/09 08:30

G Suite と記載がありましたか、Gmail アカウントという表記だと 無料版の gmail.com アカウントの可能性も考えられるので確認させていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問