【问题标题】:Sending mail with python using gmail使用 gmail 使用 python 发送邮件
【发布时间】:2012-02-07 09:46:43
【问题描述】:

我已经尝试从 gmail 使用 python 发送邮件,它工作正常。但问题是,当我使用一种方法创建 Mail 类时,我从代码中将特定字符串发送给该方法,它无法发送。

class Mail:
   def send_mail(self, msg):
      import smtplib  

      fromaddr = 'something@something.com'  
      toaddrs  = 'something@gmail.com' 
      msg = msg + "something"

      print msg

      username = 'something'  
      password = 'something'  


      server = smtplib.SMTP('smtp.gmail.com:587')  
      server.starttls()  
      server.login(username,password)  
      server.sendmail(fromaddr, toaddrs, msg)  
      server.quit()  

这样它发送邮件,但邮件中唯一的东西是我添加到字符串中的“某物”,并且 print msg 输出整个字符串加上“某物”。可能是什么问题呢?

这是现在的整个类,它被称为

     mail = Mail()
     mail.send_mail(message)

【问题讨论】:

  • 您看到的异常是什么?我得到smtplib.SMTPAuthenticationError
  • 没有例外,我在这里更改了凭据;)这就是您得到它的原因。邮件已发送,但邮件中只有“某些东西”,没有我传递给函数的“味精”
  • 我使用自己的 gmail 凭据运行它并得到它......奇怪。由于无法执行它或看到它对我来说正确的类的其余部分,您是否尝试过以其他方式连接,例如''.join((msg, 'something'))
  • 我不需要连接,我只是把它放在那里进行测试我只需要发送那个 msg 字符串,我不能但是我可以在函数中打印它,不是吗
  • 没有看到你的班级,很难知道发生了什么。你是怎么调用这个方法的?

标签: python email gmail


【解决方案1】:

我不知道问题出在哪里,但我设法使用已经在 python 中的 MIME 发送它

下面是有效的代码:

def send_mail(self, message):

    import smtplib
    from email.MIMEMultipart import MIMEMultipart
    from email.MIMEText import MIMEText

    gmailUser = 'something@gmail.com'
    gmailPassword = 'something'
    recipient = 'something@something.com'

    msg = MIMEMultipart()
    msg['From'] = gmailUser
    msg['To'] = recipient
    msg['Subject'] = "Subject"
    msg.attach(MIMEText(message))

    mailServer = smtplib.SMTP('smtp.gmail.com', 587)
    mailServer.ehlo()
    mailServer.starttls()
    mailServer.ehlo()
    mailServer.login(gmailUser, gmailPassword)
    mailServer.sendmail(gmailUser, recipient, msg.as_string())
    mailServer.close()

【讨论】:

  • 如果我必须向多个人发送相同的邮件,你能帮我吗
【解决方案2】:

问题很可能是邮件内容似乎需要在地址和邮件正文之间增加一个换行符。无论如何,iblazevic 给出的解决方案是一种更具可读性的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-12
    • 2020-07-12
    • 2011-11-24
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 2015-09-28
    • 2021-01-27
    相关资源
    最近更新 更多