-1

以下は、SMTP サーバーに接続してメールを送信するスクリプトです。

from smtplib import SMTP
import datetime

debuglevel = 0

smtp = SMTP()
smtp.set_debuglevel(debuglevel)
smtp.connect('smtp.gmail.com', 26)
smtp.login('ashwini.jena@gmail.com', 'Pa***wd')

from_addr = "Ashwin<ashwini.jena@gmail.com>"
to_addr = "foo@bar.com"

subj = "hello"
date = datetime.datetime.now().strftime( "%d/%m/%Y %H:%M" )

message_text = "Hello\nThis is a mail from your server\n\nBye\n"

msg = "From: %s\nTo: %s\nSubject: %s\nDate: %s\n\n%s"%( from_addr, to_addr, subj, date, message_text )

smtp.sendmail(from_addr, to_addr, msg)
smtp.quit()

しかし、それは次のエラーをスローします:-

Traceback (most recent call last):
  File "C:\Python33\Bidhoo.py", line 15, in <module>
    smtp.connect('smtp.gmail.com', 26)
  File "C:\Python33\lib\smtplib.py", line 317, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "C:\Python33\lib\smtplib.py", line 288, in _get_socket
    self.source_address)
  File "C:\Python33\lib\socket.py", line 424, in create_connection
    raise err
  File "C:\Python33\lib\socket.py", line 415, in create_connection
    sock.connect(sa)
TimeoutError: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

このエラーの根本原因を見つけるのを手伝ってください。また、誰でも SMTP に接続するための代替コードを共有できます..

4

1 に答える 1

2

これはsmtp.connect回線で失敗していると思いますか?これは、Pythonインタープリターでスクリプトを1行ずつ実行することで確認できます。

これが失敗する理由は、ポート番号が正しくないためです。26の代わりに587を試して、何が起こるかを確認してください。

smtp.connect('smtp.gmail.com', 587)

代替スクリプトについては、グーグルでいくつかのスクリプトを見つけました。これが1つです

于 2013-01-11T07:20:17.623 に答える