2017-12-23 33 views
2

私はsmtplibを初めて使用していて、私の会社の大量メール送信プロセスを自動化するために使用したかったのです。 は、私は、この基本的なスクリプトを試してみました - 私は私のプログラムであるとして、このスクリプトを使用していないpythonでsmtplibを使用する際のエラー

#!/usr/bin/env python 
import smtplib 

server = smtplib.SMTP('smtp.gmail.com:587') 
user_mail = '[user_email]@gmail.com' 
user_pwd = '[password]' 
rcv_mail = '[reciever_email]@yahoo.com' 
msg = 'Test' 

server.login(user_mail, user_pwd) 

server.ehlo() 
server.starttls() 
server.sendmail(user_mail, rcv_mail, msg) 
server.quit() 

を、これはどれだけしたりするsmtplib作品のこつを得ることです。 私は、電子メールモジュールからのMimeMultipart及びます:MIMETextを使用してみましたが、私はServerAuthenticationError(<のように、あまりにも出力他の例外として持っている他の反復で以前このエラー

Traceback (most recent call last): 
    File "sampleSMTP.py", line 4, in <module> 
    server = smtplib.SMTP('smtp.gmail.com. 587') 
    File "/usr/local/lib/python2.7/smtplib.py", line 256, in __init__ 
    (code, msg) = self.connect(host, port) 
    File "/usr/local/lib/python2.7/smtplib.py", line 316, in connect 
    self.sock = self._get_socket(host, port, self.timeout) 
    File "/usr/local/lib/python2.7/smtplib.py", line 291, in _get_socket 
    return socket.create_connection((host, port), timeout) 
    File "/usr/local/lib/python2.7/socket.py", line 557, in create_connection 
    for res in getaddrinfo(host, port, 0, SOCK_STREAM): 
socket.gaierror: [Errno -2] Name or service not known 

を取得しています - 私はいくつかのプリントのデバッグがしましたこれはserver.login()ステートメントから例外が発生していることがわかりました)。

私の要求は、私にこれらの例外を説明し、それらを取り除くために何が必要なのか教えてもらえますか?私は働くコードは必要ありません、良い説明です。

編集:以前に修正した構文エラーがありました。例外は今、このです: - どのように、なぜこれらの例外をしたりするsmtplib方法で引き起こされ、そしてどのように私はそれらを解決することができ

Traceback (most recent call last): 
File "sampleSMTP.py", line 10, in <module> 
    server.login(user_mail, user_pwd) 
File "/usr/local/lib/python2.7/smtplib.py", line 585, in login 
    raise SMTPException("SMTP AUTH extension not supported by server.") 
smtplib.SMTPException: SMTP AUTH extension not supported by server. 

私の元の質問には、立っていますか?

+0

'' smtp.gmail.com。 587 'は有効なホスト名ではありません。また、Googleは大量メールを好きではなく、あまりにも多くの送信をブロックすることに注意してください。 –

+0

それを指摘してくれてありがとう - それは私の部分のtypoだった。そして、はい、私はGoogleのスパムと大量メールのポリシーを認識していますが、私はそれが単一の送信されたメールのためにあまりにも多くの受信者を追加するために起動すると思った?私はすべての受取人のためにパーソナライズされたメールを送るつもりです –

+0

コードを表示します。あなたはそれをそのまま*使用しなかったと言って、それらを引き起こしたコードなしでエラーを表示します。申し訳ありませんが、私のクリスタルボールは現在故障していますので、実際のコードは何か推測できません...エラーを修正する際に役立つコードとエラーを表示してください。 –

答えて

0

SMTPオブジェクトを作成するときは、hostnameをname:portとして指定する必要があります。 したがって、server = smtplib.SMTP('smtp.gmail.com. 587')は正しくありません。 server = smtplib.SMTP('smtp.gmail.com:587')である必要があります。

あなたは、この後にエラーが発生した場合、このスレッドを参照してください。How to send an email with Gmail as provider using Python?

-1

server = smtplib.SMTP('smtp.gmail.com:587') 
 
server.ehlo() 
 
server.starttls()

を。これは、同じ質問です。

関連する問題