【问题标题】:Sending E-mail with Attachment for Amazon AWS SES for Android?为适用于 Android 的 Amazon AWS SES 发送带附件的电子邮件?
【发布时间】:2018-10-09 02:04:14
【问题描述】:

我正在尝试通过适用于 Android 的 Amazon SES 发送带有附件的电子邮件。该文档建议我发送原始电子邮件,但此文档适用于适用于 Java 的 AWS 开发工具包,但不适用于 Android AWS 开发工具包。当我尝试使用 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();
}

【问题讨论】:

  • 您正在尝试设置 SNS 端点(简单通知服务)以使用 SES(简单电子邮件服务):sesClient.setEndpoint("sns.us-west-2.amazonaws.com"); 有这样做的理由吗?跨度>
  • 好收获。这就是问题所在,我应该使用 sesClient.setEndpoint("email.us-west-2.amazonaws.com");。谢谢!
  • 太棒了!现在可以用了吗?
  • @Karthikeyan 是的,它是:)

标签: java android amazon-web-services email-attachments amazon-ses


【解决方案1】:

您正在尝试设置 SNS 端点(简单通知服务)以使用 SES(简单电子邮件服务)。而是使用正确的端点。

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

但是建议使用setRegion 方法而不是setEndpoint

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

【讨论】:

    猜你喜欢
    • 2014-12-31
    • 2017-09-28
    • 1970-01-01
    • 2022-11-25
    • 2019-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多