2017-08-07 5 views
1

私の質問が重複していない理由について説明します:TypeError:リスト( "str"ではなく)のみを連結できますリストフラスコのメールエラー:headers = [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の可能な複製:list( "str"ではなく)のみをリストに連結できます](https://stackoverflow.com/questions/19398993/typeerror-can-only-concatenate-list-not-str-to -list) – Nabin

答えて

3

は私が持っていた問題を解決するものです。 (これはMessageの受信者パラメータに関するものです)。私は1人の受信者しか持っていません。しかし、私は多くの受取人が期待されると思います。いずれにしても、1人の受信者を文字列からリストに変更することは、このトリックでした。

recipients=email 

から問題を修正

recipients=email.split() 

に行くたとえば 。私はフラスコメールには新しく、受信者に文字列を使うことについて二度考えなかった。

+0

あなたは正しいです。受信者は常にリストでなければなりません。 – Chockomonkey

+0

フォームに入力された電子メールに対して 'recipients = [form.email.data]'を使用しました。 – ryentzer