前提・実現したいこと
pythonでGメールを送信するアプリを作っています。
ですが以前はすんなり出来た気がするのですが、
今作ろうとして下記エラーが出てしまいハマってしまっています。
発生している問題・エラーメッセージ
****> python test1.py PS C:\dev\local*** > python test1.py Traceback (most recent call last): File "C:\dev\local***\test1.py", line 30, in <module> mail() File "C:\dev\local***\test1.py", line 25, in mail sender.starttls() File "C:\Users***\AppData\Local\Programs\Python\Python39\lib\smtplib.py", line 766, in starttls raise SMTPNotSupportedError( smtplib.SMTPNotSupportedError: STARTTLS extension not supported by server.
該当のソースコード
python
1import urllib3 2from bs4 import BeautifulSoup 3import certifi 4import time 5 6#メール 7import smtplib 8from email.mime.text import MIMEText 9 10def mail(): 11 if __name__ == '__main__': 12 to_addr = '*****@gmail.com' 13 from_addr = '*****@gmail.com' 14 mail_id = from_addr 15 # 取得した16桁パスワードを入力する 16 mail_pass = '*****' 17 18 message = MIMEText('Hello') 19 message['Subject'] = 'Hello' 20 message['From'] = from_addr 21 message['To'] = to_addr 22 23 sender = smtplib.SMTP('smtp.gmail.com',587) 24 sender.ehlo() 25 sender.starttls() 26 sender.login(mail_id, mail_pass) 27 sender.sendmail(from_addr, to_addr, message.as_string()) 28 sender.quit() 29 30mail()
試したこと
TLSではなくポート465を使う
gメールで二段階認証を有効にしてアプリパスワードを発行
メールアドレスをyahoo.co.jpでも同じようなエラー
openssl s_client -starttls smtp -crlf -connect smtp.gmail.com:587 -quiet のopensslを使ったコマンドラインからのメール送信はできた。認証に成功しTLSで送れている。→コマンドライン(Telnet)からのGmail送信
補足情報(FW/ツールのバージョンなど)
windows10
gmailのsmtpサーバーがTLSに対応していないことはないと思いますが……
コマンドラインから出来てるので遅れないのが謎です。
あなたの回答
tips
プレビュー