2017-11-20 49 views
0

CeleryとRabbitMQを使用して私のdjangoプロジェクトで電子メールを送信しようとしています。 GitHubに関する私のプロジェクトはhttps://github.com/Loctarogar/Django-by-Exampleです。 私のtasks.pyファイルに[email protected]と入力しましたが、実際のGoogleメールに変更しようとしましたが効果はありません。Djangoセロリで電子メールを送信できません

私はこのエラーを持っているたび:

[2017-11-20 20:09:36,747: ERROR/ForkPoolWorker-4] Task orders.tasks.order_created[a8fe13ed-08dc-4971-82ff-f184e197ab8d] raised unexpected: ConnectionRefusedError(111, 'Connection refused') 
Traceback (most recent call last): 
    File "/home/morilon/dj/shop/lib/python3.5/site-packages/celery/app/trace.py", line 374, in trace_task 
    R = retval = fun(*args, **kwargs) 
    File "/home/morilon/dj/shop/lib/python3.5/site-packages/celery/app/trace.py", line 629, in __protected_call__ 
    return self.run(*args, **kwargs) 
    File "/home/morilon/dj/shop/myshop/orders/tasks.py", line 14, in order_created 
    mail_sent = send_mail(subject, message, '[email protected]', [order.email]) 
    File "/home/morilon/dj/shop/lib/python3.5/site-packages/django/core/mail/__init__.py", line 62, in send_mail 
    return mail.send() 
    File "/home/morilon/dj/shop/lib/python3.5/site-packages/django/core/mail/message.py", line 348, in send 
    return self.get_connection(fail_silently).send_messages([self]) 
    File "/home/morilon/dj/shop/lib/python3.5/site-packages/django/core/mail/backends/smtp.py", line 104, in send_messages 
    new_conn_created = self.open() 
    File "/home/morilon/dj/shop/lib/python3.5/site-packages/django/core/mail/backends/smtp.py", line 64, in open 
    self.connection = self.connection_class(self.host, self.port, **connection_params) 
    File "/usr/lib/python3.5/smtplib.py", line 251, in __init__ 
    (code, msg) = self.connect(host, port) 
    File "/usr/lib/python3.5/smtplib.py", line 335, in connect 
    self.sock = self._get_socket(host, port, self.timeout) 
    File "/usr/lib/python3.5/smtplib.py", line 306, in _get_socket 
    self.source_address) 
    File "/usr/lib/python3.5/socket.py", line 711, in create_connection 
    raise err 
    File "/usr/lib/python3.5/socket.py", line 702, in create_connection 
    sock.connect(sa) 
ConnectionRefusedError: [Errno 111] Connection refused 

答えて

0

あなたのコードレポは、電子メールのコンソールのバックエンドを使用するように設定されていますが、あなたのバックトレースは、SMTPバックエンドが使用されている示しています。私はあなたがバックエンドを変更したと仮定し、それがエラーの原因です。

デフォルトでは、smtpバックエンドはlocalhost上のsmtpサーバーを検索します。私はそこに走っているものはないと思っています。

Gmailのsmtpサーバー経由で送信する場合は、settings.pyファイルで適切な設定を行うだけです。 See the django docs for what needs to be configured。使用する正確なsmtpホストアドレスについては、Gmailのドキュメントをお読みください。

+0

こんにちは、あなたはセロリとdjangoプロジェクトのいくつかの例がありますか?それは私にとって非常に役立つでしょう。今はそのエラーを処理しますが、私は実際の人に電子メールを送信する方法を知りたいです。 – Dorian

+0

あなたが得たエラーは、セロリーの使用とは全く関係ありませんでした。あなたのレポの設定はうまくいくように見えますが、必要なsmtpホスト情報をsettings.confファイルに追加してください。セロリかアプリケーションから直接メールを送信できるはずです。 – skulegirl

0

私は正確に同じ問題を抱えていたが、私はskulegirlが言うだけのように私settings.pyを設定することによってそれを解決して、ちょうど私のsettings.pyに

EMAIL_BACKEND =「django.core.mail.backendsこれを追加.console.EmailBackend '

私はそれがあなたを助けてくれることを願っています。

関連する問題