使用 Python 脚本从 "Google App Engine" 发送

32 阅读2分钟

huake_00198_.jpg

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 帐户的“允许不安全的应用访问”设置。

希望这些信息对您有所帮助。