2

我正在尝试使用以下代码使用 python 和 google appengine 发送电子邮件: main2.app

   import webapp2
  from google.appengine.api import mail from google.appengine.api import users

 class InviteFriendHandler(webapp2.RequestHandler):
  def post(self):
    user = users.get_current_user()
    if user is None:
      login_url = users.create_login_url(self.request.path)
      self.redirect(login_url)
      return
    to_addr = "madhurima.basu@gmail.com"
    if not mail.is_email_valid(to_addr):
        # Return an error message...
        pass

    message = mail.EmailMessage()
    message.sender = 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()

   **app.yaml**
   application: r-email
    version: 1
  runtime: python27
 api_version: 1
 threadsafe: no


handlers:
- url: /.*
script: main2.py

当我将此代码部署到谷歌引擎时,它运行时没有任何错误,但收件人没有收到任何电子邮件。同样在仪表板中,它显示 39% 的“收件人已通过电子邮件发送”..

4

1 回答 1

0

检查您的发件人电子邮件地址,有非常具体的要求。如果需要,您可以将回复地址设置为用户的地址,但实际发件人必须是以下类型之一:

  • 应用程序的注册管理员的地址。您可以使用管理控制台将管理员添加到应用程序。
  • 使用 Google 帐户登录的当前请求的用户地址。您可以使用用户 API 确定当前用户的电子邮件地址。用户的帐户必须是 Gmail 帐户,或者位于由 Google Apps 管理的域中。
  • 应用程序的任何有效电子邮件接收地址(例如 xxx@APP-ID.appspotmail.com)。
  • 域帐户的任何有效电子邮件接收地址,例如 support@example.com。域帐户是 Google 域之外的帐户,其电子邮件地址不以 @gmail.com 或 @APP-ID.appspotmail.com 结尾。

更多在这里.. https://developers.google.com/appengine/docs/python/mail/sendingmail

于 2013-05-09T03:27:13.883 回答