2017-01-29 8 views
0

私はこの問題を見てきており、以下のPythonに固執しています。Python Django Mandrill APIのレスポンス500

https://github.com/miohtama/LibertyMusicStore

これは、順番にPythonパッケージDjrillを経由して電子メールをマンドリルを使用していますジャンゴを使用しています。それはセットアップされ、動作していましたが、SSL証明書が更新された後、サインアップはもはや機能しませんでしたが、 '500 Server Error'メッセージが生成されました。このイベントのログは下にコピーされています。

新しいMailChimpアカウントがMandrillを追加して設定されました。私は新しいAPIキーを作成し、MANDRILL_API_KEYエントリを更新しました。ドメインのMandrillでは、SPFとDKIMは検証されましたが、それでも動作しません。私はこのソフトウェアに精通していないので、あなたがどのように知っていれば、これは簡単だと確信しています。私がMandrill APIのログを見ると、それらは完全に空白になっています。私は、APIキーを変更するだけではMandrillのアカウントを変更するのではなく、どこかの設定が失われていると思います。

フォームが送信されるときに問題を発生させるページです。

http://music.artbyte.me/musician-sign-up/

私が間違っているのかについての任意のアイデア?

INFO 2017-01-28 09:07:48,278 connectionpool 86.142.174.63 - POST /signup/ HTTP/1.1" Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 Starting new HTTP connection (1): mandrillapp.com 
ERROR 2017-01-28 09:07:48,418 base - - - - -" - Internal Server Error: /signup/ 
Traceback (most recent call last): 
File "/srv/django/applebytestore/venv/lib/python3.4/site-packages/django/core/handlers/base.py", line 111, in get_response 
response = wrapped_callback(request, *callback_args, **callback_kwargs) 
File "/srv/django/applebytestore/venv/lib/python3.4/site-packages/django/db/transaction.py", line 394, in inner 
return func(*args, **kwargs) 
File "./tatianastore/signup.py", line 116, in signup 
File "./tatianastore/signup.py", line 103, in create_user 
File "./tatianastore/emailer.py", line 22, in mail_store_owner 
msg.send() 
File "/srv/django/applebytestore/venv/lib/python3.4/site-packages/django/core/mail/message.py", line 286, in send 
return self.get_connection(fail_silently).send_messages([self]) 
File "/srv/django/applebytestore/venv/lib/python3.4/site-packages/djrill/mail/backends/djrill.py", line 68, in send_messages 
sent = self._send(message) 
File "/srv/django/applebytestore/venv/lib/python3.4/site-packages/djrill/mail/backends/djrill.py", line 119, in _send 
(msg_dict['to'], msg_dict['from_email'])) 
djrill.exceptions.MandrillAPIError: Mandrill API response 500 
Failed to send a message to [{'name': '', 'email': '[email protected]', 'type': 'to'}], from [email protected] 
+0

'LibertyMusicStore'プロジェクト全体を設定することなく作成できる小さなサンプルを作成しようとします。 [Djrill readme](https://github.com/brack3t/Djrill)のように 'send_email'コマンドを手動で実行するとどうなりますか?ドキュメントは、Djrillがほぼ1年間維持されていないことを警告し、代わりにdjango-anymailを推奨しています。 – Alasdair

+0

私はプロジェクトをAnyMailに移しましたが、同じ応答を得ました.tatianastore/emailer.pyのmail_store_ownerへの2つの呼び出しをtatianastore/creditor.pyとtatianastore/emailer.pyから削除しましたが、同じメッセージが表示されます。 AnyMailへの移行が少なくとも異なるエラーを生成しているはずであるため、更新はほとんどありません。 nginxを再起動し、すべての.pycファイルを削除しましたが、同じメッセージが表示されます。私はPythonコーダーではないので、これでかなり困惑しています。 –

+0

前にも述べたように、readmeから 'send_email'コマンドを手動で実行することで、設定が正しいことを確認します。現時点では、問題があなたの設定にあるのか、リンクしているリポジトリにあるのかは明らかではありません。現時点では簡単に再現可能なエラーがないので、スタックオーバーフローにはあまり適していません。 – Alasdair

答えて

3

djrillドキュメントは、彼らがあなたの代わりにdjango-anymailを使用することを示唆しているプロジェクトは4月2016年以来、非アクティブになっていると言います。

プロダクションでPythonコードを更新する場合、変更を有効にするにはサーバー(Apacheやgunicornなど)を再起動する必要があります。

+0

ありがとうございます。 AnyMailは、移行文書の後に単に作業しました。私はポイントを与えることができる前に20時間以上待たなければならない。 –

+1

参考までに、マンドリルの5xxエラーは、あなたと彼らの間の一時的なネットワークの問題であることがよくあります。あなたはおそらくそれらを将来再び見ることになり、通常は数分で解決します。 (しかし、Anymailへのアップグレードはまだまだ良いアイデアです.Djrillよりも優れたエラーメッセージが表示されるので、これがもう一度起こったら詳細を知ることになります。Anymail/Djrillメンテナ。) – medmunds