Google App Engine发送电子邮件但收件人未收到任何电子邮件时没有错误

时间:2013-05-08 14:26:29

标签: python google-app-engine

我正在尝试使用以下代码使用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

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

1 个答案:

答案 0 :(得分:0)

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

  • 应用程序的注册管理员的地址。您可以使用管理控制台将管理员添加到应用程序。
  • 使用Google帐户登录的当前请求的用户地址。您可以使用Users 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