【问题标题】:How do I send email from Google App Engine with a random, non-app admin sender?如何使用随机的非应用管理员发件人从 Google App Engine 发送电子邮件?
【发布时间】:2011-08-11 12:26:32
【问题描述】:

Google App Engine 的规则是只允许应用管理员发送电子邮件。 是否有任何人用来从非管理员地址发送电子邮件的解决方法?

我正在构建一个 B2B 白标平台,能够屏蔽“FROM”地址非常重要,而无需授予我的客户管理员访问权限。

【问题讨论】:

    标签: google-app-engine smtp


    【解决方案1】:

    docs 也声明:

    应用程序的任何有效电子邮件接收地址(例如 xxx@APP-ID.appspotmail.com)。

    因此,您可以根据该地址创建一个sender 地址,如果有人回复,您甚至可以将该电子邮件正确地路由回您的应用程序。

    【讨论】:

    • 嗨,克里斯,这很好,但它不会向收件人隐藏我的 app-id;我的 app-id 包含我的应用名称(实际上,它正是我的应用名称)。除了使用@appspotmail.com 地址或当前登录的Google 用户之外,还有其他方法吗?
    • @AlvinTan 您可以设置一个 CNAME,这样您就可以在“发件人”标头中看到您自己的域名,例如 xxx@message.example.com。我的问题的回答也可能会有所帮助。见stackoverflow.com/questions/9489134/…
    【解决方案2】:

    还可以代表已登录用户发送电子邮件,前提是该用户使用的是 Google 帐户。

    user = users.get_current_user()
    message = mail.EmailMessage(sender=user.email())    
    
    #Set other message components, such as message.body
    
    try:
      message.send()
    except:
      message.sender = #An APP-ID.appspotmail.com address, or Admin address
      message.send()
    

    【讨论】:

      【解决方案3】:

      如果您希望电子邮件看起来像是由用户发送的,并且在回复时回复到该用户的实际电子邮件地址,那么您可以使用 reply_to。

      user_name = 'Some Guy'
      user_email = 'some.guy@whatever.com'
      admin_email = 'no-reply@yourdomain.com'
      from_email = '%s <%s>' % (user_name, admin_email)
      reply_to = '%s <%s>' % (user_name, user_email)
      mail.send_mail(from_email, to_email, subject, body, reply_to=reply_to)
      

      这样对于接收电子邮件的人来说,它会显示它来自 user_name,如果他们回复,那么他们的回复电子邮件将被发送到 user_email。

      这种方法的主要缺点是,如果有人仔细查看他们收到邮件的地址,他们会看到管理员电子邮件地址,但大多数电子邮件客户端会更显眼地显示该名称。

      从好的方面来说,您可以使用任何电子邮件地址发送,大多数人不会注意到它来自管理员电子邮件地址。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-27
        • 1970-01-01
        • 2016-12-04
        • 2023-04-05
        • 2012-04-10
        • 1970-01-01
        • 2011-03-21
        • 2016-10-19
        相关资源
        最近更新 更多