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

このコードを Google エンジンにデプロイすると、エラーなしで実行されますが、受信者はメールを受け取りません。また、ダッシュボードには、39% の「受信者にメールが送信されました」と表示されています。

4

1 に答える 1

0

送信者のメールアドレスを確認してください。非常に具体的な要件があります。必要に応じて、返信先アドレスをユーザーのアドレスに設定できますが、実際の送信者は次のいずれかのタイプである必要があります。

  • アプリケーションの登録管理者のアドレス。管理コンソールを使用して、管理者をアプリケーションに追加できます。
  • Google アカウントでログインしている現在のリクエストのユーザーのアドレス。ユーザー API を使用して、現在のユーザーのメール アドレスを確認できます。ユーザーのアカウントは、Gmail アカウントであるか、Google Apps によって管理されているドメインにある必要があります。
  • アプリの有効なメール受信アドレス (xxx@APP-ID.appspotmail.com など)。
  • support@example.com など、ドメイン アカウントの有効な電子メール受信アドレス。ドメイン アカウントは、@gmail.com または @APP-ID.appspotmail.com で終わらないメール アドレスを持つ Google ドメイン外のアカウントです。

詳細はこちら.. https://developers.google.com/appengine/docs/python/mail/sendingmail

于 2013-05-09T03:27:13.883 に答える