如何使用随机的非应用管理员发件人从Google App Engine发送电子邮件?

时间:2011-08-11 12:26:32

标签: google-app-engine smtp

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

我正在建立一个B2B白标平台,能够屏蔽“FROM”地址非常重要,而不会让我的客户获得管理员访问权。

3 个答案:

答案 0 :(得分:4)

docs也声明:

  

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

因此,您可以根据该地址组成sender地址,如果有人回复,您甚至可以将该电子邮件正确地发送回您的应用。

答案 1 :(得分: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()

答案 2 :(得分:1)

如果您需要将电子邮件显示为由用户发送,并且在回复时回复该用户的实际电子邮件地址,则可以使用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。

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

在正面,您可以发送任何电子邮件地址,大多数人都不会注意到它来自管理员电子邮件地址。