Отправка электронной почты с вложением для Amazon AWS SES для Android? - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь отправлять электронные письма с вложениями через Amazon SES для Android.Документация предполагает, что я отправляю сырое электронное письмо, но эта документация была для AWS SDK для Java, но она не работает с Android AWS SDK.Я получаю это сообщение об ошибке при попытке отправить необработанное электронное письмо с помощью Android AWS SDK:

com.amazonaws.AmazonServiceException: Could not find operation SendRawEmail for version 2010-12-01

Я сделал сообщение, используя MimeMessage, для которого в этом коде установлено переменное сообщение:

public void sendEmail() {
    try {
        AWSCredentials credentials = new BasicAWSCredentials(ACCESS_KEY, SECRET_KEY);
        AmazonSimpleEmailServiceClient sesClient = new AmazonSimpleEmailServiceClient(credentials);
        sesClient.setEndpoint("https://sns.us-west-2.amazonaws.com");

        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        message.writeTo(outputStream);
        RawMessage rawMessage =
                new RawMessage(ByteBuffer.wrap(outputStream.toByteArray()));

        SendRawEmailRequest rawEmailRequest =
                new SendRawEmailRequest(rawMessage);

        sesClient.sendRawEmail(rawEmailRequest);
        System.out.println("Email sent!");
    } catch (Exception ex) {
        System.out.println("Email Failed");
        System.err.println("Error message: " + ex.getMessage());
        ex.printStackTrace();
}

1 Ответ

0 голосов
/ 10 октября 2018

Вы пытаетесь установить конечную точку SNS (Simple Notification Service) для использования SES (Simple Email Service).Вместо этого используйте правильную конечную точку.

sesClient.setEndpoint("email.us-west-2.amazonaws.com");

Однако рекомендуется использовать метод setRegion вместо setEndpoint.

sesClient.setRegion(Region.getRegion(Regions.US_WEST_2));
...