этот вопрос чем-то похож на python: при отправке почты происходит сбой, когда внутри блока «с» .
Я использую Python (3.6) для отправки письма на mailtrap smtp. Mailtrap фактически предоставляет вам код интеграции для smtplib, который приведен ниже:
import smtplib
sender = "Private Person <from@smtp.mailtrap.io>"
receiver = "A Test User <to@smtp.mailtrap.io>"
message = f"""\
Subject: Hi Mailtrap
To: {receiver}
From: {sender}
This is a test e-mail message."""
with smtplib.SMTP("smtp.mailtrap.io", 2525) as server:
server.login("<MYUSER>", "<MYPASSWORD>")
server.sendmail(sender, receiver, message)
Приведенный выше код прекрасно работает, если я помещаю его в модуль и запускаю его. I go для входящей почты mailtrap и убедитесь, что электронная почта есть. Однако я хочу заключить это в такую функцию:
import smtplib
from socket import gaierror
def test():
sender = "Test Dev <from@smtp.mailtrap.io>"
receiver = "Test User <to@smtp.mailtrap.io>"
message = f"""\
Subject: Hi there
To: {receiver}
From: {sender}
TESTING"""
try:
with smtplib.SMTP("smtp.mailtrap.io", 2525) as server:
server.login("<MYUSER>", "<MYPASSWORD")
print("Sending email")
server.sendmail(sender, receiver, message)
print('Sent')
except (gaierror, ConnectionRefusedError):
print('Failed to connect to the server. Bad connection settings?')
except smtplib.SMTPServerDisconnected:
print('Failed to connect to the server. Wrong user/password?')
except smtplib.SMTPException as e:
print('SMTP error occurred: ' + str(e))
if __name__ == "__main__":
test()
Это не работает. ПОЧЕМУ? Вот вывод: вывод изображения Нет ошибки подключения или каких-либо других исключений. Однако я go отправляю почту и не нахожу там электронную почту.
Это проблема почтовой ловушки или она связана с smtplib? Я ломаю голову вокруг этого