【发布时间】:2011-08-11 12:26:32
【问题描述】:
Google App Engine 的规则是只允许应用管理员发送电子邮件。 是否有任何人用来从非管理员地址发送电子邮件的解决方法?
我正在构建一个 B2B 白标平台,能够屏蔽“FROM”地址非常重要,而无需授予我的客户管理员访问权限。
【问题讨论】:
Google App Engine 的规则是只允许应用管理员发送电子邮件。 是否有任何人用来从非管理员地址发送电子邮件的解决方法?
我正在构建一个 B2B 白标平台,能够屏蔽“FROM”地址非常重要,而无需授予我的客户管理员访问权限。
【问题讨论】:
docs 也声明:
应用程序的任何有效电子邮件接收地址(例如 xxx@APP-ID.appspotmail.com)。
因此,您可以根据该地址创建一个sender 地址,如果有人回复,您甚至可以将该电子邮件正确地路由回您的应用程序。
【讨论】:
还可以代表已登录用户发送电子邮件,前提是该用户使用的是 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()
【讨论】:
如果您希望电子邮件看起来像是由用户发送的,并且在回复时回复到该用户的实际电子邮件地址,那么您可以使用 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。
这种方法的主要缺点是,如果有人仔细查看他们收到邮件的地址,他们会看到管理员电子邮件地址,但大多数电子邮件客户端会更显眼地显示该名称。
从好的方面来说,您可以使用任何电子邮件地址发送,大多数人不会注意到它来自管理员电子邮件地址。
【讨论】: