Python SMTP不适用于我 - 邮件未发送空字典已返回

时间:2018-06-05 01:29:54

标签: python smtplib

我正在尝试通过Python的smtplib模块发送邮件。

我在网上找到了几个例子,但到目前为止还没有一个例子。我能够连接到没有身份验证的SMTP服务器,因为此服务器不使用密码。但是,当我使用sendmail方法时,邮件不会发送给我,并且空字典会返回到交互式Python shell。

我没有直接访问SMTP服务器日志来尝试调试它,但也许能够得到一些帮助。

下面的屏幕截图指出了感兴趣/关注的领域。此外,我为您和您的屏幕阅读器复制并粘贴了Python交互式shell中的文本,这可能非常方便和有趣。

我更改了一些名称,例如我的电子邮件地址和邮件服务器的确切名称。如果那是域名或业务,我实际上并不在job.com工作。感谢您阅读本文。我很怀疑这会被解决! :/

screen shot of python 2.7 smtp trouble

Python 2.7.5 (default, Aug  4 2017, 00:39:18)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import smtplib
>>> SERVER = smtplib.SMTP()
>>> SERVER.connect('mail.devexchange.local')
(220, 'interzone.devexchange.local Microsoft ESMTP MAIL Service ready at Mo                                             n, 4 Jun 2018 19:58:21 -0500')
>>> help(SERVER)

>>> SERVER.help()
'This server supports the following commands:\nHELO EHLO STARTTLS RCPT DATA RSET                                              MAIL QUIT HELP AUTH BDAT'
>>> help(SERVER)

>>> SERVER.getreply()



(451, '4.7.0 Timeout waiting for client input')
>>>
>>>
>>>
>>> SERVER.send('me@me.com', 'myemail@job.com', 'hello from smtp')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: send() takes exactly 2 arguments (4 given)
>>> SERVER.sendmail('me@me.com', 'myemail@job.com', 'hello from smtp')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.7/smtplib.py", line 722, in sendmail
    self.ehlo_or_helo_if_needed()
  File "/usr/lib64/python2.7/smtplib.py", line 541, in ehlo_or_helo_if_needed
    if not (200 <= self.ehlo()[0] <= 299):
  File "/usr/lib64/python2.7/smtplib.py", line 412, in ehlo
    self.putcmd(self.ehlo_msg, name or self.local_hostname)
  File "/usr/lib64/python2.7/smtplib.py", line 340, in putcmd
    self.send(str)
  File "/usr/lib64/python2.7/smtplib.py", line 330, in send
    raise SMTPServerDisconnected('Server not connected')
smtplib.SMTPServerDisconnected: Server not connected
>>> SERVER.connect('mail.devexchange.local')
(220, 'interzone.devexchange.local Microsoft ESMTP MAIL Service ready at Mo                                             n, 4 Jun 2018 20:13:18 -0500')
>>> SERVER.sendmail('me@me.com', 'myemail@job.com', 'hello from smtp')
{}
>>>

更新 - 看起来我的办公室正在过滤此内容而不发送电子邮件。我认为代码很棒,而不是我的组织的安全策略。 :/

0 个答案:

没有答案