©2009 Google -
Code 主页 -
站点服务条款 -
隐私政策 -
站点目录
Google Code 有以下版本:
English -
Español -
日本語 -
한국어 -
Português -
Pусский -
中文(简体) -
中文(繁體)
邮件 API 提供两种方式来发送电子邮件:mail.send_mail() 函数以及 EmailMessage 类。
mail.send_mail() 函数将电子邮件字段(包括发件人、收件人、主题以及电子邮件正文)用作参数。
from google.appengine.api import mail
mail.send_mail(sender="support@example.com",
to="Albert Johnson <Albert.Johnson@example.com>",
subject="Your account has been approved",
body="""
Dear Albert:
Your example.com account has been approved. You can now visit
http://www.example.com/ and sign in using your Google Account to
access new features.
Please let us know if you have any questions.
The example.com Team
""")
EmailMessage 类提供了与使用对象相同的功能。电子邮件字段可传递给 EmailMessage 构造函数,然后使用实例属性进行更新。send() 方法会发送由实例属性表示的电子邮件。应用程序可通过修改属性并再次调用 send() 方法重复使用 EmailMessage 实例。
from google.appengine.api import mail
message = mail.EmailMessage(sender="support@example.com",
subject="Your account has been approved")
message.to = "Albert Johnson <Albert.Johnson@example.com>"
message.body = """
Dear Albert:
Your example.com account has been approved. You can now visit
http://www.example.com/ and sign in using your Google Account to
access new features.
Please let us know if you have any questions.
The example.com Team
""")
message.send()
有关可能的电子邮件字段的详细信息,请参阅电子邮件字段。
发送是异步的:mail.send_mail() 函数和 EmailMessage send() 方法可将邮件数据传送到邮件服务,然后再返回。邮件服务会把邮件加入队列,然后尝试发送该邮件,如果目标邮件服务器不可用,则可能重新尝试发送该邮件。错误邮件和退回邮件将发送至该电子邮件的发件人地址。
发件人地址可以是该应用程序的注册管理员的电子邮件地址,也可以是当前登录用户(发出发送邮件请求的用户)的电子邮件地址。这里有一个从当前登录用户发送邮件的示例,如果用户未登录,可使用 login_required 注释将该用户重定向至登录页面:
from google.appengine.api import mail
from google.appengine.api import users
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import login_required
class InviteFriendHandler(webapp.RequestHandler):
@login_required
def post(self):
to_addr = self.request.get("friend_email")
if not mail.is_email_valid(to_addr):
# Return an error message...
pass
message = mail.EmailMessage()
message.sender = users.get_current_user().email()
message.to = to_addr
message.body = """
I've invited you to Example.com!
To accept this invitation, click the following link,
or copy and paste the URL into your browser's address
bar:
%s
""" % generate_invite_link(to_addr)
message.send()
如果使用命令行选项将开发网络服务器配置为可发送电子邮件,那么,该开发网络服务器就能发送电子邮件。开发网络服务器可以使用 SMTP 服务器或 Sendmail 应用程序(如果有的话)。当您的应用程序在 App Engine 上运行时,该应用程序将使用 App Engine 邮件服务发送电子邮件。有关详细信息,请参阅开发网络服务器。