2017-06-08 6 views
0

クライアントにPDFを電子メールで送信するスクリプトがあり、スクリプトを開始すると3つのPDFが送信され、その後の各電子メールの送信には1〜2分かかります。私はスクリプトを停止し、数分後にやり直すことができ、3人が出て残りが糖蜜であるのと同じ結果が得られます。複数の接続が成功した後にPythonソケットのSMTP接続が遅くなる

私はそれをサーバの問題に近づけて狭くしましたが、その可能性はわかりません。私は2つのサーバーを持っています.1つは古いAWSアカウントであり、もう1つは何度も何度も電子メールを送信できます。新しいAWSアカウントサーバーでは3つの操作が可能です。私はプログラムを中断すると、私はこれは、トレースであるため、それが接続固定されていると知っている:

Traceback (most recent call last): 
    File "./test_reports.py", line 202, in <module> 
    send_email(advertiser_email, sales_email, emailSubject, emailBody, fname, sendEmail=True) 
    File "./test_reports.py", line 158, in send_email 
    smtp = smtplib.SMTP('email-smtp.us-east-1.amazonaws.com') 
    File "/usr/lib64/python3.5/smtplib.py", line 251, in __init__ 
    (code, msg) = self.connect(host, port) 
    File "/usr/lib64/python3.5/smtplib.py", line 335, in connect 
    self.sock = self._get_socket(host, port, self.timeout) 
    File "/usr/lib64/python3.5/smtplib.py", line 306, in _get_socket 
    self.source_address) 
    File "/usr/lib64/python3.5/socket.py", line 702, in create_connection 
    sock.connect(sa) 
KeyboardInterrupt 

送信しようとしている間、私はpythonのプロセスにstraceのを実行する場合、私はこの取得:

connect(4, {sa_family=AF_INET, sin_port=htons(25), sin_addr=inet_addr("54.243.225.221")}, 16) 

私は今、電子メールだけを送信するテストスクリプトを持っています。私はそれを永遠に送信する前に3回も実行することができます。私はそれがサーバー上のレート制限のいくつかの並べ替えだと思っていますが、私は今どこを見るか分からない。

答えて

0

結局、接続の確立が繰り返されました。グローバル変数の近くで接続を確立し、毎回確立する代わりにsend_email()に渡しました。私はこれを以前に試してみましたが、うまくいきませんでしたが、それはループ内にあったからだと思います。

関連する問題