我正在尝试从Google App Engine中发送电子邮件。
每当我尝试发送时,都会收到“缺少主题错误”。
当我在开发服务器上运行代码时,它似乎工作得很好-控制台输出看起来是正确的,并且我被带到了我期望的页面。但当我上传并运行它时,我得到:
Traceback (most recent call last):
File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 636, in __call__
handler.post(*groups)
File "/base/data/home/apps/spam-tool/1.349401522260793315/spam-tool.py", line 34, in post
body=cgi.escape(self.request.get('content')))
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/mail.py", line 297, in send_mail
message.send(make_sync_call)
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/mail.py", line 799, in send
raise ERROR_MAP[e.application_error](e.error_detail)
BadRequestError: Missing subject但肯定有一个主题。
我使用的代码是:
> message = mail.EmailMessage(sender="admin_address@gmail.com>",
subject="test")
message.subject=self.request.get('content')
message.to = addr_to_send_to
message.body = self.request.get('content')
message.send()(是的,主题设置了两次...我只尝试在一个或另一个地方设置它,但都不起作用。)
提前谢谢。
发布于 2011-04-01 11:51:52
试试这个:
def email_member(request):
to_addr = request.POST.get('email_to')
if not mail.is_email_valid(to_addr):
# Return an error message...
pass
else:
# note we can also send html email, e.g. html='<html><head></head><body>Hello world</body><html>'
mail.send_mail(
sender='admin@yourdomain.com',
to=to_addr,
subject=request.POST.get('email_title'),
body=request.POST.get('email_body'))我建议你也在任务队列中发送你的电子邮件,所以你可以像这样设置,你可以传递一个唯一的参数,这样你就不太可能被黑客攻击。
def mail_member_information(email_to, email_title, email_body):
taskqueue.add(
url = 'email_message',
params =
{
'email_to': email_to,
'email_title': email_title,
'email_body': email_body,
'valid_guid': 'ae9e34ca-a2c5-476e-b8be-72d807e3dc6b'
}
)如果您只想发送给管理员,则使用以下命令:
mail.send_mail_to_admins(sender='admin@yourdomain.com', subject=request.POST.get('email_title'), body=request.POST.get('email_body'), html=request.POST.get('email_body'))
发布于 2011-04-01 10:57:30
我不知道这是不是让你失望的原因...但发送者应该是这样的:
sender = '<admin_address@gmail.com>',您缺少发件人的“<”。有时,它会在实际错误所在的下游抛出错误。
此外,请确保该admin_address@gmail.com是作为该应用程序的开发人员添加的谷歌帐户。
发布于 2011-04-01 12:39:57
我认为你可以这样发送,确保发送者是应用程序的管理员
from google.appengine.api import mail
mail.send_mail(sender="something@gmail.com",
to=email_valid.email,
subject="Please validate your email",
body=body_text,
html=htmlbody_text)https://stackoverflow.com/questions/5508582
复制相似问题