Почему мой EC2 может отправлять электронную почту через Gmail, но не с собственного домена? - PullRequest
0 голосов
/ 03 мая 2019

У меня проблема с моей рассылкой на django, по-видимому, я могу без проблем отправлять электронную почту с учетной записью gmail, но я не могу отправить какую-либо электронную почту с моего почтового ящика домена.Есть любопытная вещь, локально моя SMTP SSL электронная почта работает, но при загрузке на экземпляр EC2 ничего не отправляется.

Я пробовал перейти с SMTPSSL на только SMTP, но все еще не работает, также у меня естьпопробовал на экземпляре heroku, но опять же, экземпляр heroku даже не отправляет из gmail как экземпляр EC2.

ACCOUNT_EMAIL = os.environ['ACCOUNT_EMAIL']
ACCOUNT_PASSWORD = os.environ['ACCOUNT_PASSWORD']
# EMAIL_PROVIDER = 'smtp.gmail.com' //gmail configurations
# EMAIL_SERVER_PORT = 587
EMAIL_PROVIDER = 'krishna.hosting-mexico.net'
EMAIL_SERVER_PORT = 465
SECURITY_EMAIL_SENDER = ACCOUNT_EMAIL


def send_driver_welcome_email(user_email):
    from_email_address = EMAIL
    from_email_address_password = PASSWORD
    htmly     = get_template('driver_welcome_email.html')

    message = MIMEMultipart('alternative')
    message['Subject'] = 'Bienvenido a TAXI 2.0'
    message['From'] = from_email_address
    message['To'] = user_email

    html_content = htmly.render(None)

    part1 = MIMEText(html_content, 'html')

    message.attach(part1)

    server = smtplib.SMTP(EMAIL_PROVIDER, EMAIL_SERVER_PORT)
    #server = smtplib.SMTP_SSL(EMAIL_PROVIDER, EMAIL_SERVER_PORT) //This works locally
    server.ehlo()
    server.starttls()
    server.login(from_email_address, from_email_address_password)
    server.sendmail(from_email_address, user_email, message.as_string())
    server.quit()

На моей консоли я получаю сообщение об ошибке: (тест сегодня)

...
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/django/core/handlers/exception.py", line 39, in inner
    response = get_response(request)
  File "/usr/lib/python3.7/site-packages/django/core/handlers/base.py", line 187, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/usr/lib/python3.7/site-packages/django/core/handlers/base.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/lib/python3.7/site-packages/django/contrib/auth/decorators.py", line 23, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "/home/mauricio/Documents/vast-reef-49088/touchtaxiapp/views.py", line 104, in manager_add_driver
    send_driver_welcome_email(user_form.cleaned_data['username'].lower())
  File "/home/mauricio/Documents/vast-reef-49088/touchtaxiapp/apis.py", line 115, in send_driver_welcome_email
    server = smtplib.SMTP(EMAIL_PROVIDER, EMAIL_SERVER_PORT)
  File "/usr/lib/python3.7/smtplib.py", line 251, in __init__
    (code, msg) = self.connect(host, port)
  File "/usr/lib/python3.7/smtplib.py", line 338, in connect
    (code, msg) = self.getreply()
  File "/usr/lib/python3.7/smtplib.py", line 394, in getreply
    raise SMTPServerDisconnected("Connection unexpectedly closed")
smtplib.SMTPServerDisconnected: Connection unexpectedly closed
[02/May/2019 19:30:43] "POST /manager/driver/add/ HTTP/1.1" 500 109428

Я не понимаю, почему это происходит, и Google мало чем помогает, поскольку на многих страницах предлагается использовать SES, но я не заинтересован в его использовании, поскольку хочу использовать домен своего сайта ине доплачивать амазонке за то, что она должна работать.

1 Ответ

0 голосов
/ 03 мая 2019

Итак, если у кого-то возникла такая же проблема, просто измените порт на 587. Он будет отлично работать на экземплярах Heroku и EC2.

Также имейте в виду, что мое решение не копирует отправленную электронную почту.в папку «Отправить» домена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...