554 сообщение отклонено адрес электронной почты не подтвержден. амазонка ses-java

Я был подтвержден как с, так и с адресов электронной почты (оба письма чувствительны к регистру) снова и снова, и я все еще получаю сообщение 554 отклонено: адрес электронной почты не подтвержден. Отклонение от SES. Но когда я пытаюсь отправить электронные письма из Amazon SES Console, используя тот же адрес электронной почты, он работает нормально. Если мои исходящие и исходящие электронные письма не были проверены, то с консоли он также не должен работать. Не могу понять, что происходит.

public class AmazonSESSample {

    static final String FROM = "from email";
    static final String TO = "to email";

    static final String BODY = "This email was sent through the Amazon SES SMTP interface by using Java.";
    static final String SUBJECT = "Amazon SES test (SMTP interface accessed using Java)";

    // Supply your SMTP credentials below. Note that your SMTP credentials are different from your AWS credentials.
    static final String SMTP_USERNAME = "SMTP USER NAME";
    static final String SMTP_PASSWORD = "SMTP PWD";

    static final String HOST = "email-smtp.us-east-1.amazonaws.com";    

    // Port we will connect to on the Amazon SES SMTP endpoint. We are choosing  port 25 because we will use
    // STARTTLS to encrypt the connection.
    static final int PORT = 25;

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

        // Create a Properties object to contain connection configuration information.
        Properties props = System.getProperties();
        props.put("mail.transport.protocol", "smtp");
        props.put("mail.smtp.port", PORT); 

        // Set properties indicating that we want to use STARTTLS to encrypt the connection.
        // The SMTP session will begin on an unencrypted connection, and then the client
        // will issue a STARTTLS command to upgrade to an encrypted connection.
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.starttls.required", "true");

        // Create a Session object to represent a mail session with the specified properties. 
        Session session = Session.getDefaultInstance(props);

        // Create a message with the specified information. 
        MimeMessage msg = new MimeMessage(session);
        msg.setFrom(new InternetAddress(FROM));
        msg.setRecipient(Message.RecipientType.TO, new InternetAddress(TO));
        msg.setSubject(SUBJECT);
        msg.setContent(BODY,"text/plain");

        // Create a transport.        
        Transport transport = session.getTransport();

        // Send the message.
        try
        {
            System.out.println("Attempting to send an email through the Amazon SES SMTP interface...");

            // Connect to Amazon SES using the SMTP username and password you specified above.
            transport.connect(HOST, SMTP_USERNAME, SMTP_PASSWORD);

            // Send the email.
            transport.sendMessage(msg, msg.getAllRecipients());
            System.out.println("Email sent!");
        }
        catch (Exception ex) {
            System.out.println("The email was not sent.");
            System.out.println("Error message: " + ex.getMessage());
            ex.printStackTrace();
        }
        finally
        {
            // Close and terminate the connection.
            transport.close();          
        }
    }
}

person user1501354    schedule 03.03.2016    source источник
comment
мы сталкиваемся с одной и той же проблемой. Вы получили какое-нибудь решение?   -  person MasterCode    schedule 18.04.2016


Ответы (2)


У меня была такая же проблема, но оказалось, что это просто проблема слепого копирования и вставки. В настоящее время существует 3 региона с ЕЭП. В зависимости от того, в каком регионе вы устанавливаете идентификатор, необходимо соответствующим образом изменить переменную HOST.

static final String HOST = "email-smtp.us-east-1.amazonaws.com";

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

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

person thamch    schedule 07.03.2017

Вы впервые используете эту учетную запись в SES? Если да, то вы должны быть в режиме песочницы.

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

Документ SES

Вы можете выполнить следующие действия:

1 Войдите в Консоль управления AWS.

2 Перейдите к SES Sending Limits Increase.

3 Заполните необходимые данные и установите лимит желаемого использования

Выход из песочницы

person Rodrigo Secko    schedule 06.05.2021