【问题标题】:Emails sent using python SMTP lib doesn't reach recipient使用 python SMTP lib 发送的电子邮件未到达收件人
【发布时间】:2018-02-27 21:00:22
【问题描述】:

我在使用 Python 发送电子邮件时遇到问题。此脚本的目的是它应该从指定文件夹加载所有 .PDF 文件,并将第一个文件发送到 .CSV 文件中的第一封电子邮件,依此类推。这工作正常,在我的最后,电子邮件出现在我在 gmail.com 的发件箱中,包含正确的附件。

另一方面,本应收到这些电子邮件的收件人却没有收到。我还检查了这些电子邮件的垃圾邮件箱,但找不到它们。

  • 有人知道为什么吗?
  • 另外,如果我发送到我的电子邮件,邮件会到达我的收件箱。

这是我认为出错的部分代码:

    #imports
    import smtplib
    from email.mime.text import MIMEText
    from email.mime.multipart import MIMEMultipart
    from email.mime.base import MIMEBase
    from email import encoders

    counter = 0
    for mailTo in emailRecList:

      try:
        #server connection
        server = smtplib.SMTP('smtp.gmail.com',587)
        server.starttls()
        server.login(loginMail, loginPassword)

        #__Send email__
        server.sendmail(sendMail,loginMail,email)
        server.quit
        counter = counter + 1 
      except smtplib.SMTPException:
        print('Failed to send mail to: ' + mailTo)

【问题讨论】:

  • 那是很多代码。您能否尝试将其范围缩小到您认为相关的内容?还有一些基本的故障排除:您确定 SMTP 服务器的响应表明邮件已发送?您是否使用了正确的凭据?
  • @YotamSalmon 他说他们出现在他的Sentgmail 邮箱中,所以它必须正确连接到 SMTP 服务器。邮件很可能被收件人的垃圾邮件过滤器阻止了。
  • dirDivider = '/' ?你为什么不使用os.path.join()
  • 我当然错过了。谢谢,@Barmar
  • 哦,我将来会使用 os.join.path(),不知道那个。有什么办法可以告诉邮件地址“这不是垃圾邮件”

标签: python email smtp gmail smtplib


【解决方案1】:

这其实很尴尬,但这就是问题所在:

server.sendmail(sendMail,loginMail,email)

应该是:

server.sendmail(loginMail,mailTo,email)

我猜它说发送给收件人的邮件的原因是它被定义为:

msg = MIMEMultipart()
msg['To'] = mailTo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-17
    • 1970-01-01
    • 2011-02-01
    • 2015-01-20
    • 1970-01-01
    • 2019-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多