Адрес электронной почты Amazon SES не проверен

Я начинаю с серверов amazon и начал изучать SES. Я использую asp.net C # и сделал мои учебники на основе кода. Я уже проверил домен, а также проверил электронные письма, в которых я буду запускать тест.

таким образом, когда я запускаю свой код, он генерирует следующее сообщение об ошибке: транзакция не удалась. Ответ сервера: сообщение отклонено: адрес электронной почты не проверен.

Я не знаю, что это потому, что я за все возможные меры, один подробно пока не заказан выпуск access to production.

но я думаю, что этого не может быть, я все еще тестирую сервис.

Код

public void enviarSES02()
        {
            try
            {
                const String FROM = "verified email address"; 
                const String TO = "verified email address"; 

                const String SUBJECT = "Amazon SES test (SMTP interface accessed using C#)";
                const String BODY = "This email was sent through the Amazon SES SMTP interface by using C#.";

                const String SMTP_USERNAME = "my username";  // Replace with your SMTP username. 
                const String SMTP_PASSWORD = "my password";  // Replace with your SMTP password.

                const String HOST = "email-smtp.us-west-2.amazonaws.com";

                const int PORT = 25;//already tried with all recommended ports

                SmtpClient client = new SmtpClient(HOST, PORT);
                client.Credentials = new System.Net.NetworkCredential(SMTP_USERNAME, SMTP_PASSWORD);

                client.EnableSsl = true;

                try
                {
                    Console.WriteLine("Attempting to send an email through the Amazon SES SMTP interface...");
                    client.Send(FROM, TO, SUBJECT, BODY);
                    Response.Write("ENVIADO");
                }
                catch (Exception ex)
                {
                    Response.Write("<br>O e-mail não foi enviado.<br>");
                    Response.Write("Olhao erro: " + ex.Message);
                }

            }
            catch (Exception ex)
            {
                Response.Write("Error message: " + ex.Message);
            }

        }

4 ответов


ваш код показывает, что вы пытаетесь отправить через us-west-2. Вы запросили производственный доступ в этом регионе и ваш From адреса проверенные? Производственный доступ для Amazon SES не зависит от региона, и вам нужно запросить его отдельно для каждого региона.

если у вас нет производственного доступа, вы должны убедиться, что оба From и To адреса проверяются. Консоль Amazon SES отобразит ваш подтвержденный адрес электронной почты адреса и проверенных доменов на us-west-2. Блог Amazon SES имеет дополнительные указания о том, как вы можете настроить в us-west-2.

быстрый способ сказать, если у вас нет доступа производства: войдите в панель управления консоли Amazon SES и он отобразит синий баннер со следующим текстом в верхней части страницы с кнопкой для запроса производственного доступа:

ваша учетная запись Amazon SES имеет " песочницу" доступ в регион us West (Орегон.) С sandbox access вы можете отправлять электронную почту только на Amazon Симулятор почтовых ящиков SES и адреса электронной почты или домены, которые у вас есть верифицированный. Учить больше.

не удается найти существующие настройки учетной записи? Ваша учетная запись может быть настроена в другом регионе AWS. Попробуйте переключить области в правом верхнем углу угол консоли.


вы случайно все еще работаете в режиме "песочницы"? Если вы, вы можете отправлять электронные письма только на адреса, которые были предварительно проверены.

От Amazon:

адрес электронной почты не подтвержден - ваша учетная запись находится в песочнице и один адреса электронной почты получателя не были проверены. Это может применитесь к адресам" отправитель"," обратный путь "или" от".

если вы не запросили производственный доступ к Amazon SES, Вы должны проверить каждый адрес электронной почты получателя за исключением получателей предоставлено симулятором почтовых ящиков Amazon SES. Вы также должны проверить свой собственный адрес. Дополнительные сведения см. В разделе Проверка электронной почты Адреса и домены в Amazon SES и тестирование электронной почты Amazon SES Отправка.

дополнительная информация здесь:http://docs.aws.amazon.com/ses/latest/DeveloperGuide/ses-errors.html


после нескольких недель возни, я, наконец, разобрался в этом. Поэтому, если вы вышли из песочницы, проверили свой домен и свой адрес электронной почты, остерегайтесь региона по умолчанию. Как вы уже знаете (только догадка), выход из песочницы зависит от региона (а также от проверенной электронной почты и домена).

моя проблема заключалась в том, что во всех перестановках отправки электронной почты с помощью AWS SDK Java я не смог указать явный регион, и моя учетная запись в США была дефолт региона на запад США. Мой регион, где я сделал все проверки (и был из песочницы), был запад Европы (email-smtp.eu-west-1.amazonaws.com). Также не забудьте использовать соответствующие учетные данные для API Amazon SES, которые являются ключами доступа AWS. В моем случае (ниже) эти ключи находятся в файле, в пути к классам с двумя парами ключ-значение:

accessKey = AKI...
secretKey = AsVyp...

и вот код:

import java.io.IOException;

import java.util.ArrayList;
import java.util.Properties;
import java.util.Arrays;


import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import com.amazonaws.auth.PropertiesCredentials;
import com.amazonaws.services.simpleemail.AWSJavaMailTransport;
import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;
import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClient;
import com.amazonaws.services.simpleemail.model.ListVerifiedEmailAddressesResult;
import com.amazonaws.services.simpleemail.model.VerifyEmailAddressRequest;
//import com.amazonaws.services.ec2.model.Region;
import com.amazonaws.services.simpleemail.*;
import com.amazonaws.services.simpleemail.model.*;
import com.amazonaws.regions.*;

public class AmazonSESSample {

static final String FROM = "john@myappsdomain.com";  
static final String TO = "me@mypersonalaccount.com";                                                       // 
static final String BODY = "This email was sent through Amazon SES by using the AWS SDK for Java.";
static final String SUBJECT = "Amazon SES test (AWS SDK for Java)";


public static void main(String[] args) throws IOException {     

    // Construct an object to contain the recipient address.
    Destination destination = new Destination().withToAddresses(new String[]{TO});

    // Create the subject and body of the message.
    Content subject = new Content().withData(SUBJECT);
    Content textBody = new Content().withData(BODY); 
    Body body = new Body().withText(textBody);

    PropertiesCredentials credentials = new PropertiesCredentials(
            AmazonSESSample.class
                    .getResourceAsStream("AwsCredentials.properties"));

    Message message = new Message().withSubject(subject).withBody(body);
    SendEmailRequest request = new SendEmailRequest().withSource(FROM).withDestination(destination).withMessage(message);

    try
    {        

        AmazonSimpleEmailServiceClient client = new AmazonSimpleEmailServiceClient(credentials);
        Region REGION = Region.getRegion(Regions.EU_WEST_1);
        client.setRegion(REGION);
        client.sendEmail(request);  
        System.out.println("Email sent!");
    }
    catch (Exception ex) 
    {
        System.out.println("The email was not sent.");
        System.out.println("Error message: " + ex.getMessage());
    }
}

}


также дважды проверьте, чтобы убедиться, что вы не работаете в рабочем режиме и/или убедитесь, что ваша отправка по адресу проверена в режиме песочницы.

ограничения режима песочницы AWS SES:

  • вы можете отправлять почту только в симулятор почтовых ящиков Amazon SES и на проверенные адреса электронной почты и Домены.
  • вы можете отправлять почту только с проверенных адресов электронной почты и доменов.
  • вы можете отправить максимум 200 сообщений в 24 часа период.
  • Amazon SES может принимать не более одного сообщения от вашего аккаунта в секунду.

http://docs.aws.amazon.com/ses/latest/DeveloperGuide/request-production-access.html