Тайм-аут AWS Lambda при отправке электронной почты по SMTPPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Тайм-аут AWS Lambda при отправке электронной почты по SMTP

Сообщение Anonymous »

Я пытаюсь использовать AWS Lambda и шлюз API, чтобы добавить страницу «Свяжитесь со мной» на своем статическом веб-сайте портфолио. Я добавил API-шлюз в качестве триггера для моей функции Lambda, которая отправляет запрос POST с моего веб-сайта, когда пользователь отправляет контактную форму.
Я пытаюсь отправить электронное письмо. себе из функции Lambda с данными в отправленной контактной форме. Это мой обработчик -

Код: Выделить всё

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import json
import os
import smtplib, ssl

def lambda_handler(event, context):
request = json.loads(event['body'])
if 'name' in request and 'email' in request and 'message' in request:
sent_from = '[my email]'
gmail_password = os.environ.get('GMAIL_APP_PASSWORD')
sent_to = '[my other email]'
message = request['message']
subject = request['subject'] if 'subject' in request else f'Message from {user_name}'

message = MIMEMultipart('alternative')
message['Subject'] = subject
message['From'] = sent_from
message['To'] = sent_to

body = f"""
[my email body]
"""
part1 = MIMEText(body, 'html')
message.attach(part1)

try:
context = ssl.create_default_context()
with smtplib.SMTP_SSL('smtp.gmail.com', 465, context=context) as server:
server.login(sent_from, gmail_password)
server.sendmail(sent_from, sent_to, message.as_string())
return {
'statusCode': 200,
'body': json.dumps(True)
}
except Exception as e:
return {
'statusCode': 500,
'body': str(e)
}
return {
'statusCode': 400,
'body': '{"message": "Bad Request"}'
}
Я проверил, что мой код работает правильно до строки server.login(sent_from, gmail_password). Я могу успешно войти в систему. Однако в строке server.sendmail() возникает некоторая ошибка, которая возвращает общий ответ HTTP 500 (а не тот, который возвращается моим блоком исключений, поскольку я не вижу сообщения об исключении в ответ).
Я просмотрел журналы CloudWatch для своей функции и, как я вижу, похоже, время ожидания истекло -
Изображение

Иногда я даже получаю электронное письмо в свой почтовый ящик, но с нет темы или тела.
Почему это происходит и как это исправить?

Подробнее здесь: https://stackoverflow.com/questions/788 ... -with-smtp
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»