Отправить тестовое электронное письмо не удалось, адрес электронной почты не проверен
Я хочу использовать сервис простой электронной почты Amazon для отправки электронных писем.
Я подтвердил свой домен, а также адрес электронной почты, с которого я хочу отправить.
Для обоих это говорит verified
,
Теперь, когда я отправляю тестовое электронное письмо на myemail@outlook.com для отправки тестового электронного письма из консоли AWS, я получаю только сообщение об ошибке:
Адрес электронной почты не подтвержден. Следующие удостоверения не прошли проверку в регионе EU-WEST-1: myemail@outlook.com (идентификатор запроса: 9fb78de1-2673-11e6-bbbc-5f819fabe4f4)
Теперь он меня поражает, потому что он говорит, что myemail@outlook.com не был проверен, но я пытался отправить с admin@mydomain.com. Диалоговое окно "Отправить тестовое электронное письмо" даже заставляет вас использовать электронное письмо, которое уже зарегистрировано.
Как можно решить эту проблему? Я что-то пропустил?
18 ответов
Когда ваша учетная запись SES находится в режиме "песочницы", вы можете:
- Отправлять только с проверенных доменов и адресов электронной почты, и
- Отправлять только на подтвержденные домены и адреса электронной почты
Чтобы отправить кому-либо еще, вы должны вывести свою учетную запись из режима "песочницы", обратившись в службу поддержки AWS и запросив ее:
В моем случае мне нужно было снова подтвердить электронную почту в регионе, где это не удалось. Вы можете попробовать изменить свой регион в правом верхнем углу, затем снова нажмите "Подтвердить новый адрес электронной почты". ht tps:https://stackru.com/images/029632cc4108cd9bd81fdc9abbca5feda03f2173.png
Если электронная почта уже подтверждена, и вы находитесь вне Песочницы SES, убедитесь, что у вас правильный регион AWS для SMTP-сервера. Я пытался подключиться к email-smtp.eu-west-1.amazonaws.com
когда мои учетные данные SMTP были для email-smtp.us-east-1.amazonaws.com
сервер.
@Matt Houser уже ответил на вопросы, но я добавляю снимок экрана от июня 2020 года, который объясняет, что он сказал.
Удостовериться
- Вы добавляете свой адрес электронной почты в ses и получаете подтверждение.
- Вы включаете производственный режим для своей учетной записи.
Я подтвердил адрес электронной почты, а затем, через несколько дней, мой домен. Когда домен был полностью подтвержден (включая DKIM), я все еще получал ошибку «Адрес электронной почты не подтвержден» при попытке отправить электронные письма на адреса электронной почты в моем домене, которые не были моим конкретным проверенным адресом.
Я удалил свой подтвержденный адрес электронной почты и повторно подтвердил его, и это сразу же сработало. Затем я мог отправлять электронные письма для всего домена, тогда как раньше я мог отправлять только в и из электронной почты, которую я ранее проверил.
Имейте в виду, что проверенные личности на самом деле чувствительны к регистру. Мне было интересно, почему я получил такую ошибку, хотя моя электронная почта была проверена и вышла из SandBox.
В моем случае я хотел отправить электронное письмо на тот же адрес электронной почты для подтверждения. Итак, я проверил свою электронную почту с помощью DKIM, как упоминал @Greg Wozniak. Я увидел зеленую галочку в поле и проверил:
Но я все еще видел:
Email address is not verified. The following identities failed the check in region...
Решение в моем случае состояло в том , чтобы добавить эту функцию в код:
def verify_email_identity():
ses_client = boto3.client("ses", region_name="us-east-1")
response = ses_client.verify_email_identity(
# Email address that will receive the email
# In my case the same email address
# that was verified on Amazon SES
EmailAddress="receipientemail@gmail.com"
)
print(response)
Взято с этого сайта
Итак, я получил новое электронное письмо для проверки адреса электронной почты получателя. После подтвердите адрес электронной почты получателя, щелкнув ссылку, отправленную Amazon SES. Мне удалось отправить электронное письмо с этим кодом:
client = boto3.client('ses',region_name="us-east-1")
# Try to send the email.
try:
#Provide the contents of the email.
response = client.send_email(
Destination={
'ToAddresses': [
receipientemail@gmail.com,
],
},
Message={
'Body': {
'Html': {
'Charset': "UTF-8",
'Data': "Test",
},
},
'Subject': {
'Charset': "UTF-8",
'Data': "Test",
},
},
Source=receipientemail@gmail.com,
)
# Display an error if something goes wrong.
except ClientError as e:
print(e.response['Error']['Message'])
else:
print("Email sent! Message ID:"),
print(response['MessageId'])
У меня была эта проблема. Я проверил домен и электронную почту, даже настройки DKIM были проверены. Но все еще получаю это сообщение:
Email address is not verified. The following identities failed the check in region {aws_region}: {email}
Я добавил SourceArn в качестве параметра для sendEmail, чем получил это сообщение:
User `arn:aws:iam::{account_id}:user/{username}' is not authorized to perform `ses:SendEmail' on resource `arn:aws:ses:{aws_region:{account_id}:identity/{email}'
Через 2 дня я обнаружил, что использую не того пользователя IAM!
Для меня проблема заключалась в том, что я не сопоставлял случаи. Подтвержденный адрес электронной почты и отправленный адрес электронной почты должны точно совпадать.
test@gmail.com vs Test@gmail.com
Убеждаться
-Вы отправили запрос на поддержку клиента и объяснили, в каких целях подтвердите его, до 24 человек, возможно, они спросят вас о дополнительной информации о вашем приложении.
Проблема
Путаница возникает из-за того, что ваш адрес электронной почты отображается как «Подтвержденный» в AWS SES -> Подтвержденные удостоверения и все еще не работает.
На самом деле есть две проверки:
- DKIM один (что делает поле зеленым и проверенным)
- Подтверждение адреса электронной почты
Это означает, что вы должны использовать адрес электронной почты, к которому у вас есть доступ (почтовый ящик), чтобы щелкнуть ссылку подтверждения.
Без перехода по ссылке в электронном письме ваша личность может быть подтверждена, но вы все равно будете везде видеть ошибку.
Простое решение с использованием AWS WorkMail
Я использую AWS WorkMail, но я создал новую группу вместо другой учетной записи WorkMail, затем добавил в нее свою личную учетную запись, получил электронное письмо с подтверждением и сумел заставить работать : « noreply@... ».
Поскольку вы находитесь в режиме песочницы, вы можете добавить и подтвердить адрес электронной почты: « myemail@outlook.com » для временной тренировки. В противном случае вам необходимо перейти с рабочей учетной записи на учетную запись песочницы.
У меня такая же проблема; прочитав этот документ , я понял, что некоторые параметры отсутствуют.
Если вы используетеboto3
тебе следует отправитьReturnPathArn
иSourceArn
тоже вsend_email
, это сработало для меня.
У меня была такая же проблема пару минут назад, хотя на этот раз я работаю с SDK в PHP.
Мне пришлось перепроверить код создания экземпляра SesClient.
$SesClient = new SesClient([
'profile' => 'default',
'version' => '2010-12-01',
'region' => 'us-west-2',
]);
Я обнаружил, что регион в коде инстанцирования — us-west-2. Я вернулся к своей консоли и обнаружил, что учетная запись SES изолирована в us-east-2 (Огайо).
Я реализовал изменение в коде создания экземпляра так
$SesClient = new SesClient([
'profile' => 'default',
'version' => '2010-12-01',
'region' => 'us-east-2',
]);
Теперь работает.
В моем случае я использовал cdk. Моя электронная почта использовала собственный домен, и домен сказал, что он проверен. При настройке электронной почты с помощью SES через cdk я не добавил атрибутsesVerifiedDomain
. Установка этого значения для пользовательского домена, который я использовал, решила мою проблему.
У меня была эта проблема, и ничего из вышеперечисленного не помогло мне. Моя проблема связана именно с отправкой через python с использованием boro3. В конце концов я понял, что система, над которой я работал, имела другой набор учетных данных aws, хранящихся в системе Windows, чем в подсистеме Linux на той же машине с Windows. Решение состояло в том, чтобы установить оба набора учетных данных aws в соответствии с соответствующей учетной записью aws. Я добавляю это здесь на тот случай, если у кого-то возникнет такая же проблема, и, как и я, он не сможет найти ответ.
Обратите внимание: по крайней мере, кажется, что в песочнице SES выдаст эту ошибку, если вы установите для получателя и отправителя один и тот же адрес (даже если он проверен).