Google app engine 使用邮件API时Google应用程序引擎出现问题

Google app engine 使用邮件API时Google应用程序引擎出现问题,google-app-engine,Google App Engine,您好,我在联系人页面上有一个带有post方法的联系人表单,希望能够使用Mail API从我的google app engine应用程序发送邮件,因此我决定使用Mail API,并在我的开发人员控制台上注册为授权发件人,并启动命令--enable_sendmail=yes applicationID测试它,它给我这个错误。我对谷歌应用程序引擎还相当陌生,不知道为什么会这样 “信息2015-08-06 18:44:50935邮件存根。py:142]邮件服务。发送 发件人:abdallahozaifa

您好,我在联系人页面上有一个带有post方法的联系人表单,希望能够使用Mail API从我的google app engine应用程序发送邮件,因此我决定使用Mail API,并在我的开发人员控制台上注册为授权发件人,并启动命令--enable_sendmail=yes applicationID测试它,它给我这个错误。我对谷歌应用程序引擎还相当陌生,不知道为什么会这样

“信息2015-08-06 18:44:50935邮件存根。py:142]邮件服务。发送 发件人:abdallahozaifa19527@gmail.com 致:Hozaifa 主题:测试 /bin/sh:1:sendmail:未找到 错误2015-08-06 18:44:50944 mail_stub.py:263]使用sendmail发送邮件时出错:[Errno 32]管道断裂“
导入操作系统
导入webapp2
进口金玉2
从google.appengine.api导入邮件
template\u dir=os.path.join(os.path.dirname(\u文件\u),'templates')
jinja_env=jinja2.Environment(loader=jinja2.FileSystemLoader(template_dir),
自动转义=真)
类处理程序(webapp2.RequestHandler):
def写入(自身,*a,**kw):
自响应输出写入(*a,**kw)
def render_str(自身、模板、**参数):
t=jinja_环境获取模板(模板)
返回t.render(参数)
def渲染(自身、模板,**kw):
self.write(self.render_str(模板,**kw))
类主页面(处理程序):
def get(自我):
self.render(“index.html”)
类关于页(处理程序):
def get(自我):
self.render(“about.html”)
类ProjectsPage(处理程序):
def get(自我):
self.render(“projects.html”)
类经验年龄(处理者):
def get(自我):
self.render(“experience.html”)
类ContactPage(处理程序):
def get(自我):
self.render(“contact.html”)
def post(自我):
name=self.request.get('name')
email=self.request.get('email')
message=self.request.get('message')
如果(姓名、电子邮件和消息):
message=mail.EmailMessage(发件人=”abdallahozaifa19527@gmail.com“,subject=“Test”)
message.to=“Hozaifa”
message.send()
其他:
self.write(“它没用!”)
app=webapp2.WSGIApplication([(“/”,主页),
('/about.html',AboutPage),
('/projects.html',ProjectsPage),
('/experience.html',ExperiencePage),
('/contact.html',ContactPage)])

我的代码可以工作,但是它不能与google app engine SDK一起工作,因为SDK没有发送邮件功能,我试图使用SDK测试它,问题解决了

您是否安装了sendmail?要从实际appengine发送电子邮件,您只需部署您的应用程序-只有SDK在没有外部程序的情况下才不会发送邮件。让它登录到终端通常足以进行开发。我当时不这么认为,我以为开发SDK有它,但我找不到,所以你可能是对的。我会尝试部署它,看看会发生什么。谢谢你,先生!!当我部署它时,它工作!!所以,接受你自己的答案,这在这个网站上是很好的礼节。你可以使用sdk通过以下选项发送邮件:--smtp_host=smtp.of.your.Provider是的,在2天之前我不会接受我自己的答案。 "INFO 2015-08-06 18:44:50,935 mail_stub.py:142] MailService.Send From: abdallahozaifa19527@gmail.com To: Hozaifa Subject: Test /bin/sh: 1: sendmail: not found ERROR 2015-08-06 18:44:50,944 mail_stub.py:263] Error sending mail using sendmail: [Errno 32] Broken pipe"
import os
import webapp2
import jinja2
from google.appengine.api import mail


template_dir = os.path.join(os.path.dirname(__file__), 'templates')
jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir),
                           autoescape = True)

 class Handler(webapp2.RequestHandler):
    def write(self, *a, **kw):
            self.response.out.write(*a, **kw)

    def render_str(self, template, **params):
            t = jinja_env.get_template(template)
            return t.render(params)

    def render(self, template, **kw):
            self.write(self.render_str(template, **kw))

 class MainPage(Handler):
    def get(self):
               self.render("index.html")

class AboutPage(Handler):
    def get(self):
               self.render("about.html")                   

class ProjectsPage(Handler):
    def get(self):
               self.render("projects.html")

class ExperiencePage(Handler):
    def get(self):
               self.render("experience.html")                  

class ContactPage(Handler):
    def get(self):
               self.render("contact.html")
    def post(self):
        name = self.request.get('name')
        email = self.request.get('email')
        message = self.request.get('message')

        if (name and email and message):
            message = mail.EmailMessage(sender="abdallahozaifa19527@gmail.com", subject="Test")
            message.to = "Hozaifa<abdallahozaifa19527@gmail.com>"
            message.send()
        else:
            self.write("It didnt work!")


app = webapp2.WSGIApplication([('/', MainPage),
                            ('/about.html', AboutPage),
                            ('/projects.html', ProjectsPage),
                            ('/experience.html', ExperiencePage), 
                            ('/contact.html', ContactPage)])