Форум сайта python.su
Здравствуйте? Помогите пожалуйста разобраться с отправкой электронных писем в Django.
Я создал файл
management/commands/testsend.py:
from django.core.mail import send_mail send_mail('subj', 'message', 'from@mail.ru', ['megoloman@ukr.net'])
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' DEFAULT_FROM_EMAIL = 'user@domain.com' EMAIL_USE_TLS = True EMAIL_HOST = 'smtp.gmail.com' EMAIL_HOST_USER = 'user@domain.com' EMAIL_HOST_PASSWORD = 'password' EMAIL_PORT = 587
python manage.py testsend
Traceback (most recent call last): File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line utility.execute() File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 272, in fetch_command klass = load_command_class(app_name, subcommand) File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 75, in load_command_class module = import_module('%s.management.commands.%s' % (app_name, name)) File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module __import__(name) File "/home/pc2/megoloman/realtyboard/board/management/commands/testprint.py", line 14, in <module> send_mail('subj', 'message', 'from@mail.ru', ['megoloman@ukr.net']) File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/mail/__init__.py", line 50, in send_mail connection=connection).send() File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/mail/message.py", line 255, in send return self.get_connection(fail_silently).send_messages([self]) File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 88, in send_messages new_conn_created = self.open() File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 49, in open local_hostname=DNS_NAME.get_fqdn()) File "/usr/lib/python2.7/smtplib.py", line 256, in __init__ (code, msg) = self.connect(host, port) File "/usr/lib/python2.7/smtplib.py", line 316, in connect self.sock = self._get_socket(host, port, self.timeout) File "/usr/lib/python2.7/smtplib.py", line 291, in _get_socket return socket.create_connection((host, port), timeout) File "/usr/lib/python2.7/socket.py", line 571, in create_connection raise err socket.error: [Errno 111] Connection refused
Офлайн
С сервером соединиться не может - проверяйте почему.
Еще важно чтобы имя отправителя совпадало c EMAIL_HOST_USER
Офлайн
Изменил, появилась другая ошибка:
Traceback (most recent call last): File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line utility.execute() File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/management/base.py", line 242, in run_from_argv self.execute(*args, **options.__dict__) File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/management/base.py", line 285, in execute output = self.handle(*args, **options) File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/management/base.py", line 324, in handle raise NotImplementedError() NotImplementedError
Офлайн
from django.core.mail import send_mail send_mail('Subject here', 'Here is the message.', 'from@example.com', ['to@example.com'], fail_silently=False)
Офлайн
Если указывать
fail_silently=False
Traceback (most recent call last): File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line utility.execute() File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 272, in fetch_command klass = load_command_class(app_name, subcommand) File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 75, in load_command_class module = import_module('%s.management.commands.%s' % (app_name, name)) File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module __import__(name) File "/home/pc2/megoloman/realtyboard/board/management/commands/test_send.py", line 7, in <module> class Command(BaseCommand): File "/home/pc2/megoloman/realtyboard/board/management/commands/test_send.py", line 15, in Command send_mail('test message', 'At laaaaaaaast!!!!', 'noreply@ci.ua', ['megoloman@ukr.net'], fail_silently=False) File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/mail/__init__.py", line 50, in send_mail connection=connection).send() File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/mail/message.py", line 255, in send return self.get_connection(fail_silently).send_messages([self]) File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 88, in send_messages new_conn_created = self.open() File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 49, in open local_hostname=DNS_NAME.get_fqdn()) File "/usr/lib/python2.7/smtplib.py", line 256, in __init__ (code, msg) = self.connect(host, port) File "/usr/lib/python2.7/smtplib.py", line 316, in connect self.sock = self._get_socket(host, port, self.timeout) File "/usr/lib/python2.7/smtplib.py", line 291, in _get_socket return socket.create_connection((host, port), timeout) File "/usr/lib/python2.7/socket.py", line 571, in create_connection raise err socket.error: [Errno 111] Connection refused
fail_silently=True
Traceback (most recent call last): File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line utility.execute() File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/management/base.py", line 242, in run_from_argv self.execute(*args, **options.__dict__) File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/management/base.py", line 285, in execute output = self.handle(*args, **options) File "/home/pc2/.virtualenvs/megoloman/local/lib/python2.7/site-packages/django/core/management/base.py", line 324, in handle raise NotImplementedError() NotImplementedError
Офлайн
Если в питоне юзать smtplib, то при подключении к гуглу, указывать почту нужно без @gmail.com. может и здесь так же нужно?
Например
EMAIL_HOST_USER = 'username'
Офлайн
Попробовал, те же ошибки остались
Офлайн
А если порт поменять на 25?
Офлайн
Все равно не помогает, на текущей момент у меня следующие настройки:
settings.py:
EMAIL_HOST = 'localhost' EMAIL_PORT = 25 EMAIL_HOST_USER = 'noreply' EMAIL_HOST_PASSWORD = '' EMAIL_USE_TLS = False DEFAULT_FROM_EMAIL = 'noreply@ci.ua'
testsend.py:
# -*- coding: utf-8 -*- from django.core.management.base import BaseCommand, CommandError from django.core.mail import send_mail class Command(BaseCommand): send_mail('test message', 'At laaaaaaaast!!!!', 'noreply@ci.ua', ['megoloman@ukr.net'], fail_silently=True)
Офлайн
telnet smtp.gmail.com 587
что говорит?
Офлайн