首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >flask邮件错误:标题= [self.sender,self.reply_to] + self.recipients

flask邮件错误:标题= [self.sender,self.reply_to] + self.recipients
EN

Stack Overflow用户
提问于 2017-08-07 14:10:05
回答 2查看 1.9K关注 0票数 4

我应该解释为什么我的问题不是: TypeError:只能将list (不是“str”)连接到list

...so它不是重复的,因为post处理的是出现在代码中的连接运算符+;而我的问题在错误消息中有该运算符,但在代码中没有。

这是相关的Flask代码,我查看了回溯(如下所示)……它看起来像是

代码语言:javascript
复制
mail.sent(msg)

line是进攻发生的地方。我真的很努力地尝试解决这个问题,显然msg的内容有问题……但我不知道是什么。任何帮助都将不胜感激!

代码语言:javascript
复制
            token = s.dumps(form.email.data, salt='email-confirm')
            subject = 'subject goes here'
            msg = Message(subject=subject, sender='recipient@email.com',
                          recipients=form.email.data)
            link = url_for('confirm_email', token=token, _external=True)
            pull_row = User.query.filter_by(email=form.email.data).first()
            firstname = pull_row.firstname
            msg.html = render_template("email_confirmationemail.html", link=link, name=firstname)
            mail.send(msg)
            return redirect(url_for('checkyouremail'))

这是回溯

代码语言:javascript
复制
2017-08-07T06:00:05.982678+00:00 app[web.1]: Traceback (most recent call last):
2017-08-07T06:00:05.982679+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 130, in handle
2017-08-07T06:00:05.982680+00:00 app[web.1]:     self.handle_request(listener, req, client, addr)
2017-08-07T06:00:05.982681+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 171, in handle_request
2017-08-07T06:00:05.982681+00:00 app[web.1]:     respiter = self.wsgi(environ, resp.start_response)
2017-08-07T06:00:05.982682+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1836, in __call__
2017-08-07T06:00:05.982682+00:00 app[web.1]:     return self.wsgi_app(environ, start_response)
2017-08-07T06:00:05.982683+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1820, in wsgi_app
2017-08-07T06:00:05.982684+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1403, in handle_exception
2017-08-07T06:00:05.982684+00:00 app[web.1]:     response = self.make_response(self.handle_exception(e))
2017-08-07T06:00:05.982685+00:00 app[web.1]:     reraise(exc_type, exc_value, tb)
2017-08-07T06:00:05.982686+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
2017-08-07T06:00:05.982686+00:00 app[web.1]:     raise value
2017-08-07T06:00:05.982687+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1817, in wsgi_app
2017-08-07T06:00:05.982688+00:00 app[web.1]:     response = self.full_dispatch_request()
2017-08-07T06:00:05.982689+00:00 app[web.1]:     rv = self.handle_user_exception(e)
2017-08-07T06:00:05.982688+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1477, in full_dispatch_request
2017-08-07T06:00:05.982690+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1381, in handle_user_exception
2017-08-07T06:00:05.982691+00:00 app[web.1]:     reraise(exc_type, exc_value, tb)
2017-08-07T06:00:05.982691+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
2017-08-07T06:00:05.982692+00:00 app[web.1]:     raise value
2017-08-07T06:00:05.982692+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1475, in full_dispatch_request
2017-08-07T06:00:05.982693+00:00 app[web.1]:     rv = self.dispatch_request()
2017-08-07T06:00:05.982694+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1461, in dispatch_request
2017-08-07T06:00:05.982695+00:00 app[web.1]:   File "/app/app.py", line 213, in login
2017-08-07T06:00:05.982695+00:00 app[web.1]:     return self.view_functions[rule.endpoint](**req.view_args)
2017-08-07T06:00:05.982696+00:00 app[web.1]:     mail.send(msg)
2017-08-07T06:00:05.982697+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask_mail.py", line 492, in send
2017-08-07T06:00:05.982697+00:00 app[web.1]:     message.send(connection)
2017-08-07T06:00:05.982698+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask_mail.py", line 427, in send
2017-08-07T06:00:05.982698+00:00 app[web.1]:     connection.send(self)
2017-08-07T06:00:05.982699+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask_mail.py", line 181, in send
2017-08-07T06:00:05.982700+00:00 app[web.1]:     if message.has_bad_headers():
2017-08-07T06:00:05.982700+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/flask_mail.py", line 400, in has_bad_headers
2017-08-07T06:00:05.982701+00:00 app[web.1]:     headers = [self.sender, self.reply_to] + self.recipients
2017-08-07T06:00:05.982704+00:00 app[web.1]: TypeError: can only concatenate list (not "str") to list
EN

回答 2

Stack Overflow用户

发布于 2017-08-07 17:20:20

所以这就是解决我遇到的问题的方法。(这是关于消息中的recipients参数)。我只有一个收件人。但我想可能会有很多获奖者。在任何情况下,将我的一个收件人从字符串更改为列表都起到了作用。例如,从

代码语言:javascript
复制
recipients=email

代码语言:javascript
复制
recipients=email.split()

修复了问题。我是第一次使用flask-mail,在使用字符串作为收件人时,我毫不犹豫。

票数 8
EN

Stack Overflow用户

发布于 2019-04-22 15:56:38

我今天遇到了同样的问题,这里是我如何解决它的。

代码语言:javascript
复制
recipient = request.form.get("email")
Message(subject=subject, recipients=[recipient]

收件人应该作为列表传递,即使您有一个列表。

参数:

  • recipients -

电子邮件地址列表

API

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45540384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档