Подтвердить что ты не робот

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

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

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

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

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

Мой код

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);
            }

        }
4b9b3361

Ответ 1

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

Если у вас нет доступа к продуктам, вы должны убедиться, что оба адреса From и To подтверждены. На консоли ASUS Amazon будут перечислены ваши проверенные адреса электронной почты и проверенные домены для us-west-2. В блоге SAS Amazon есть дополнительные рекомендации о том, как вы можете настроить в us-west-2.

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

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

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

Ответ 2

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

Из Amazon:

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

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

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

Ответ 3

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

Моя проблема заключалась в том, что я был тем, что во всех перестановках, связанных с отправкой электронной почты с помощью Java AWS SDK, я не смог указать явный регион, и моя учетная запись в США по умолчанию не использовала этот регион для США-Запада. В моем регионе, где я провела все проверки (и была вне Песочницы), была Европа-Запад (email-smtp.eu-west-1.amazonaws.com). Также не забудьте использовать правильные учетные данные для API SAS Amazon, которые являются ключами доступа 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 = "[email protected]";  
static final String TO = "[email protected]";                                                       // 
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());
    }
}

}

Ответ 4

Также дважды проверьте, не запущен ли в рабочем режиме и/или убедитесь, что ваш адрес отправки ТО подтвержден в режиме "Песочница".

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

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

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