Другие опции
Когда вы используете почтовые функции в PHP, он использует локальный sendmail хоста, на котором вы находитесь, что, в свою очередь, является просто SMTP-ретранслятором локально, конечно, локальная отправка электронных писем не рекомендуется, поскольку они, вероятно, не имеют хорошая скорость доставки благодаря DKIM, SPF и другим механизмам защиты. Если вы заботитесь о доставке, я бы порекомендовал использовать либо
a) Внешний SMTP-сервер для отправки почты, который правильно настроен для домена-отправителя.
b) API, такой как AWS SES, Mailgun или эквивалентный.
Если вы не заботитесь о доставке, то вы, конечно, можете использовать локальный SendMail из Python, SendMail прослушивает петлевой адрес (127.0.0.1) на порту 25, как и любой другой SMTP-сервер, поэтому вы можете использовать smtplib для отправки через SendMail без необходимости использования внешнего SMTP-сервера.
Отправка электронной почты через локальный SMTP
Если у вас есть локальный SMTP-сервер, такой как SendMail, проверьте, что он прослушивает, как ожидалось ...
netstat -tuna
Вы должны видеть, что он прослушивает адрес обратной связи на порту 25.
Если он слушает, вы можете сделать что-то подобное из Python для отправки электронного письма.
import smtplib
sender = 'no_reply@mydomain.com'
receivers = ['person@otherdomain.com']
message = """From: No Reply <no_reply@mydomain.com>
To: Person <person@otherdomain.com>
Subject: Test Email
This is a test e-mail message.
"""
try:
smtpObj = smtplib.SMTP('localhost')
smtpObj.sendmail(sender, receivers, message)
print("Successfully sent email")
except SMTPException:
print("Error: unable to send email")