这段代码可以正常工作,并向我发送一封电子邮件:
import smtplib
#SERVER = "localhost"
FROM = 'monty@python.com'
TO = ["jon@mycompany.com"] # must be a list
SUBJECT = "Hello!"
TEXT = "This message was sent with Python's smtplib."
# Prepare actual message
message = """\
From: %s
To: %s
Subject: %s
%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)
# Send the mail
server = smtplib.SMTP('myserver')
server.sendmail(FROM, TO, message)
server.quit()
但是,如果我尝试将其包装成这样的函数:
def sendMail(FROM,TO,SUBJECT,TEXT,SERVER):
import smtplib
"""this is some test documentation in the function"""
message = """\
From: %s
To: %s
Subject: %s
%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)
# Send the mail
server = smtplib.SMTP(SERVER)
server.sendmail(FROM, TO, message)
server.quit()
我得到了以下错误:
Traceback (most recent call last):
File "C:/Python31/mailtest1.py", line 8, in <module>
sendmail.sendMail(sender,recipients,subject,body,server)
File "C:/Python31\sendmail.py", line 13, in sendMail
server.sendmail(FROM, TO, message)
File "C:\Python31\lib\smtplib.py", line 720, in sendmail
self.rset()
File "C:\Python31\lib\smtplib.py", line 444, in rset
return self.docmd("rset")
File "C:\Python31\lib\smtplib.py", line 368, in docmd
return self.getreply()
File "C:\Python31\lib\smtplib.py", line 345, in getreply
raise SMTPServerDisconnected("Connection unexpectedly closed")
smtplib.SMTPServerDisconnected: Connection unexpectedly closed
有人能帮我理解为什么吗?
我建议您使用标准包^{} 和^{} 一起发送电子邮件。请看下面的示例(从Python documentation复制)。注意,如果您采用这种方法,“简单”任务确实很简单,而且更复杂的任务(例如附加二进制对象或发送普通/HTML多部分消息)可以非常快速地完成。
要将电子邮件发送到多个目的地,还可以按照Python documentation中的示例进行操作:
如您所见,
MIMEText
对象中的头To
必须是由逗号分隔的电子邮件地址组成的字符串。另一方面,sendmail
函数的第二个参数必须是字符串列表(每个字符串都是电子邮件地址)。因此,如果您有三个电子邮件地址:
person1@example.com
、person2@example.com
和person3@example.com
,您可以执行以下操作(省略明显的部分):",".join(to)
部分在列表中生成一个字符串,用逗号分隔。根据您的问题,我认为您还没有经历过the Python tutorial-如果您想在Python中找到任何地方,这是必须的-文档对于标准库来说非常优秀。
好吧,你想要一个最新、最现代的答案。
我的答案是:
当我需要用python发送邮件时,我会使用mailgunAPI wich get来处理邮件。他们有一个很棒的应用程序/api,允许你每月免费发送10000封电子邮件。
发送电子邮件的方式如下:
您还可以跟踪事件和更多内容,请参见the quickstart guide。
希望你觉得这个有用!
相关问题 更多 >
编程相关推荐