2017-08-07 32 views
1

我應該解釋爲什麼我的問題不是重複的:TypeError:只能連接列表(不是「str」)到列表燒瓶郵件錯誤:標題= [self.sender,self.reply_to] + self.recipients

...所以它不是重複的,因爲該帖子處理連接運算符+,出現在代碼中;而我的問題在錯誤消息中有該運算符,但不在代碼中。

下面是相關代碼瓶,我通過回溯(如下圖所示)看着...它好像

mail.sent(msg) 

線是在犯罪發生。我已經很努力的解決了這個問題,顯然msg的內容有些問題......但我找不出什麼。任何幫助將非常感激!

  token = s.dumps(form.email.data, salt='email-confirm') 
      subject = 'subject goes here' 
      msg = Message(subject=subject, sender='[email protected]', 
          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')) 

這裏是回溯

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 
+0

可能重複[TypeError:只能連接列表(不是「str」)列表](https://stackoverflow.com/questions/19398993/typeerror-can-only-concatenate-list-not-str-to -list) – Nabin

回答

3

所以這是解決我遇到的問題。 (這是關於消息中的收件人蔘數)。我只有一個收件人。但我猜想有很多收件人是預計的。無論如何,將我的一個收件人從一個字符串改爲一個列表就是個訣竅。 例如從

recipients=email 

recipients=email.split() 

修復該問題。我是新來的燒瓶郵件,我沒有考慮使用收件人的字符串。

+0

你完全正確。收件人必須始終是一個列表。 – Chockomonkey

+0

我使用'recipients = [form.email.data]'輸入表單中的電子郵件。 – ryentzer