import sys, smtplib
fromaddr = raw_input("From: ")
toaddr = string.splitfields(raw_input("To: "), ',')
print "Enter message, end with ^D:"
msg = ''
while 1:
line = sys.stdin.readline()
if not line:
break
msg = msg + line
# The actual mail send
server = smtplib.SMTP('localhost')
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
但我不太明白如何从 "Google App Engine" 运行此脚本:
1)首先,我不太清楚在这个行中,From: 后面需要写什么电子邮件地址:
fromaddr = raw_input("From: ")
我可以写我任何邮箱的电子邮件地址吗?
2)其次,假设我想给我自己的这个邮箱地址 brilliant@yahoo.com 发送一封邮件。那么,我想下一行代码应该这样:
toaddr = string.splitfields(raw_input("To: brilliant@yahoo.com"), ',')
是这样吗?
3)第三,假设我想发送的邮件内容是这句话:Cats cannot fly! 那么,我认为以 msg = 开头的行应该这样:
msg = 'Cats cannot fly!'
这是对的吗?
4)如果我将此脚本作为应用程序上传到 "GAE",它会多久向我的邮箱发送此邮件?它只会给我发送一次,还是会一直给我发送,直到我删除该应用程序?(这就是我到现在还没有尝试上传此脚本的原因)
非常感谢大家的耐心和时间。
2、解决方案
当然,您可以按照文档中概述的邮件 API 来操作:
import webapp2
class MailHandler(webapp2.RequestHandler):
def get(self):
sender = 'someone@example.com'
to = 'someone_else@example.com'
subject = 'Hello!'
body = 'Hello world!'
message =EmailMessage()
message.sender = sender
message.to = to
message.subject = subject
message.body = body
message.send()
self.response.write('Sent message from %s to %s' % (sender, to))
app = webapp2.WSGIApplication([
('/', MailHandler)
], debug=True)
或者,您可以使用流行的第三方库 Mailgun 来发送电子邮件:
import mailgun
mg_client = mailgun.Mailgun('your-api-key', 'your-domain')
msg = mailgun.Message(
"from@example.com",
"to@example.com",
"Hello from Python!",
"Hello, world! This is a test email from Python."
)
mg_client.send_message(msg)
此外,您还可以使用 Python Email Library 来发送电子邮件:
import smtplib
smtp_server = 'smtp.gmail.com'
smtp_port = 587 # for TLS
smtp_username = 'your-username'
smtp_password = 'your-password'
subject = "Hello, world!"
sender = 'from@example.com'
recipients = ['to1@example.com', 'to2@example.com']
body = "Hello, world! This is a test email from Python."
message = """From: {sender}
To: {recipients}
Subject: {subject}
{body}
"""
session = smtplib.SMTP(smtp_server, smtp_port)
session.ehlo()
session.starttls()
session.ehlo()
session.login(smtp_username, smtp_password)
session.sendmail(sender, recipients, message)
session.quit()
请注意,在使用 Python Email Library 时,您需要启用您 Gmail 帐户的“允许不安全的应用访问”设置。
希望这些信息对您有所帮助。