Согласно Как отправить электронное письмо из Azure функционального приложения , мы не можем отправлять электронную почту напрямую из нашей Azure функции, поэтому вместо этого мы используем API SendGrid для отправки наших электронных писем. (Похоже, что SendGrid хорошо работает для нас, и мы получаем бесплатную учетную запись по нашей подписке Azure)
Хотя большинство писем go в порядке, некоторые из них не доставляются. Фид активности SendGrid показывает для них статус Block
. Подробное сообщение об ошибке:
unable to get mx info: failed to get IPs from PTR record: lookup <nil>: unrecognized address
Поскольку большинство писем выдают go, мы не думаем, что это проблема нашего кода. Мы прошли этапы аутентификации домена SendGrid , проверили наш домен, добавили ключи DKIM в наш DNS и добавили хосты SendGrid в нашу запись SPF. Однако некоторые из них не работают, и мы не можем найти что-либо в справке SendGrid по нашей ошибке.
Код, который мы используем (Python), в основном взят из SendGrid python пример , в случае, если это помогает, но при отправке мы не сообщаем об ошибках.
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail
def sendEmail(toaddress, subject, message):
logging.info("Sending email to <%s> - %s", toaddress, subject)
message = Mail(
from_email=settings.emailFrom(),
to_emails=toaddress,
subject=subject,
plain_text_content=message)
try:
sg = SendGridAPIClient(settings.sendgridAPIKey())
response = sg.send(message)
logging.info("Email sent via SendGrid: %d - %s", response.status_code, response.body)
except Exception as e:
logging.error(e.message)