要在Amazon SES中发送电子邮件到Gmail地址,您需要确保您的电子邮件设置正确,并且您的Amazon SES帐户已经通过了Gmail的电子邮件身份验证。
下面是一个使用AWS SDK for Java发送电子邮件到Gmail地址的代码示例:
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;
import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClientBuilder;
import com.amazonaws.services.simpleemail.model.RawMessage;
import com.amazonaws.services.simpleemail.model.SendRawEmailRequest;
import com.amazonaws.services.simpleemail.model.SendRawEmailResult;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeBodyPart;
import javax.mail.util.ByteArrayDataSource;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.Properties;
public class SendEmailToGmail {
public static void main(String[] args) throws MessagingException, IOException {
String accessKey = "YOUR_ACCESS_KEY";
String secretKey = "YOUR_SECRET_KEY";
// 创建AWS凭证对象
BasicAWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
// 创建Amazon SES客户端
AmazonSimpleEmailService client = AmazonSimpleEmailServiceClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.withRegion(Regions.US_EAST_1)
.build();
// 创建邮件会话
Session session = Session.getDefaultInstance(new Properties());
// 创建MimeMessage对象
MimeMessage mimeMessage = new MimeMessage(session);
// 设置发件人和收件人
mimeMessage.setFrom(new InternetAddress("SENDER_EMAIL_ADDRESS"));
mimeMessage.setRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress("RECIPIENT_EMAIL_ADDRESS"));
// 设置邮件主题
mimeMessage.setSubject("Test Email");
// 创建邮件内容
MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent("This is a test email", "text/plain");
// 创建包含邮件内容的Multipart对象
MimeMultipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
// 将Multipart对象设置为邮件内容
mimeMessage.setContent(multipart);
// 将MimeMessage对象转换为字节数组
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
mimeMessage.writeTo(outputStream);
byte[] rawMessageBytes = outputStream.toByteArray();
// 创建RawMessage对象
RawMessage rawMessage = new RawMessage(ByteBuffer.wrap(rawMessageBytes));
// 创建发送邮件请求
SendRawEmailRequest rawEmailRequest = new SendRawEmailRequest(rawMessage);
// 发送邮件
SendRawEmailResult result = client.sendRawEmail(rawEmailRequest);
System.out.println("Email sent!");
}
}
请确保将代码示例中的以下值替换为您自己的值:
此代码示例将通过Amazon SES发送一封包含简单文本内容的电子邮件到指定的Gmail地址。