質問編集履歴

1 コードブロックに変更

basscl

basscl score 14

2018/10/09 16:48  投稿

pythonでyahooメールを送りたい
### 前提・実現したいこと
現在、python3.6(Spyderを使ってます)を使用してメール送信を送りたいと考えています。
送り元としてYahooメールを使用したいです。
エラー発生と書いたところを実行するとうまくいきません。
何か解決のヒントとなるアドバイスがいただけると助かります。
### 発生している問題・エラーメッセージ
smtplib.SMTPNotSupportedError: STARTTLS extension not supported by server.
### 該当のソースコード
```python3
import smtplib
from email.mime.text import MIMEText
SMTP_SERVER = "smtp.mail.yahoo.co.jp"
SMTP_PORT = 587
SMTP_USERNAME = "test@yahoo.co.jp"#送信元アドレス
SMTP_PASSWORD = "password"#パスワード
EMAIL_FROM ="test@yahoo.co.jp"#送信元アドレス
EMAIL_TO =  "test@gmail.com"#送信先アドレス
EMAIL_SUBJECT = "SUB"
co_msg = "msg"
msg = MIMEText(co_msg)
msg['Subject'] = EMAIL_SUBJECT
msg['From'] = EMAIL_FROM
msg['To'] = EMAIL_TO
debuglevel = True
mail = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
mail.set_debuglevel(debuglevel)
__**mail.starttls()**__#ここでエラー発生
mail.login(SMTP_USERNAME, SMTP_PASSWORD)
mail.sendmail(EMAIL_FROM, EMAIL_TO, msg.as_string())
mail.quit()
```  
### 試したこと
今回Yahooメールで送信したら失敗しましたが、Gmailで送信した場合はうまくできました。(Yahoo→Gmailはダメだが、Gmail→Yahooは成功)
それぞれYahooとGmailのセキュリティの設定は問題ないと思います。
(Gmailでうまくいってるので、最悪Gmailも利用します。自分の都合で申し訳ありませんが、できたらYahooが使いたいです。)
  • Python 3.x

    19048 questions

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

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る