4
發送電子郵件據有可能代表在當前登錄用戶發送使用GAE的電子郵件中的文件,如果用戶有一個Gmail或谷歌Apps帳戶:代表谷歌Apps的用戶
爲了安全起見,郵件的發件人地址必須是應用程序管理員的 電子郵件地址或應用程序的任何有效的 電子郵件接收地址(請參閱接收郵件)。如果用戶的帳戶是Gmail帳戶或位於由Google Apps管理的 域,發件人 也可以是當前登錄用戶 的Google帳戶電子郵件地址。
以下代碼適用於代表Gmail用戶發送電子郵件,但不適用於Google Apps用戶。嘗試從Google Apps用戶發送郵件會導致「未經授權的發件人」錯誤。
current_user = users.get_current_user()
message = mail.EmailMessage()
message.sender = current_user.email()
message.subject = 'subject text'
message.to = '[email protected]'
message.body = 'body text'
if message.is_initialized():
try:
message.send()
except Exception, e:
logging.error('Unable to send email update: %s' % e)
else:
logging.error('Email message improperly initialized')
我在想什麼?我應該注意到其他的依賴關係嗎?
編輯:
完整堆棧跟蹤:
Unauthorized sender
Traceback (most recent call last):
File "/base/data/home/apps/s~core-comps/1.358275951854397525/handler_cs_ticket.py", line 274, in sendEmailCopyToClient
message.send()
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/mail.py", line 900, in send
raise ERROR_MAP[e.application_error](e.error_detail)
InvalidSenderError: Unauthorized sender
不要使用'logging.error',使用'logging.exception',它會爲你記錄堆棧跟蹤。請不要,不要,除了例外,電子!儘管如此,請在你的問題中包括完整的堆棧跟蹤。 – 2012-04-17 06:22:43
您是否嘗試過很多Google Apps帳戶? 如果您向我發送(通過電子郵件很好,我是名字+ google.com上的最後一個首字母),那麼您可以嘗試跟蹤此問題。謝謝! – 2012-04-17 13:12:43
@Moishe - 感謝您的提供,我通過電子郵件向您發送了帳戶詳細信息,並且我已經通過多個Google Apps帳戶嘗試了此操作。 – 2012-04-17 18:00:19