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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

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

Q&A

解決済

2回答

4329閲覧

Python3のメール送信

takumi_mas

総合スコア52

Python 3.x

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

0グッド

0クリップ

投稿2018/03/25 08:19

編集2018/03/25 09:03

Python3でメールを送信する方法を教えてください。自分でも調べてsmtplibを使い送信しようとしても接続の段階でエラーが出てしまいました

コード

from email.mime.text import MIMEText message = MIMEText('TEST MAIL') message['Subject'] = 'TEST' message['From'] = '自分のメールアドレス' message['To'] = '相手のメールアドレス' import smtplib sender = smtplib.SMTP_SSL('smtp.mail.outlook.com',587) sender.login('自分のメールアドレス', 'パスワード') sender.sendmail('自分のメールアドレス', '相手のメールアドレス', message.as_string()) sender.quit()

エラー

Traceback (most recent call last): File "C:\Users\user\Desktop\send_mail.py", line 8, in <module> sender = smtplib.SMTP_SSL('smtp.mail.outlook.com',587) File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\smtplib.py", line 1030, in __init__ source_address) File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\smtplib.py", line 251, in __init__ (code, msg) = self.connect(host, port) File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\smtplib.py", line 336, in connect self.sock = self._get_socket(host, port, self.timeout) File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\smtplib.py", line 1038, in _get_socket server_hostname=self._host) File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\ssl.py", line 401, in wrap_socket _context=self, _session=session) File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\ssl.py", line 808, in __init__ self.do_handshake() File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\ssl.py", line 1061, in do_handshake self._sslobj.do_handshake() File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\ssl.py", line 683, in do_handshake self._sslobj.do_handshake() ssl.SSLError: [SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:748)

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

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

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

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

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

guest

回答2

0

ポート587は通常、SMTP over SSLではなくSMTP with STARTTLSです。STARTTLSは最初は普通のTCPコネクションなので、クライアント側がいくらハンドシェイクしようとしても失敗に終わるのです。

投稿2018/03/25 09:52

YouheiSakurai

総合スコア6142

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

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

0

ベストアンサー

そのまま、「python メール送信」でぐぐると解説がたくさんでてきます。
まずこれ読んで、それでもわからない場合にまた聞けばいいとおもわれます

投稿2018/03/25 08:26

y_waiwai

総合スコア87774

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

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

takumi_mas

2018/03/25 08:47

自分なりに調べてみたのですがそれでもエラーが出てしまいます
y_waiwai

2018/03/25 08:51

なら、質問を編集して、あなたの書いたコードと、その出たというエラー内容を書いてください。 特に、エラーは出たものをそのままコピペで提示くださるように願います
KojiDoi

2018/03/25 08:51

> 自分なりに調べてみたのですがそれでもエラーが出てしまいます これじゃさっぱりわかりません。「どんなコードを書いて」「どんなエラーが出たのか」それをちゃんと整理して示してください。とにかくゼロから教えろなんてのは受け入れられません。
takumi_mas

2018/03/25 09:04

すみません コードとエラーを追加しました。
y_waiwai

2018/03/25 09:24

まず、 import smtplib を先頭に入れてください これで実行できるんじゃないかと
y_waiwai

2018/03/25 09:32

ああ、 sender = smtplib.SMTP_SSL('smtp.mail.outlook.com',587) で接続できないって言ってるのか メールサーバに接続できないって言ってますねー ここのサーバ名/ポート番号かあってるのかまずチェックしようw
takumi_mas

2018/03/25 13:12 編集

ありがとうございました gmailからは送れました
y_waiwai

2018/03/25 11:02

おお、おめでとうw
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問