22
22
import software .amazon .awssdk .services .pinpoint .model .MessageRequest ;
23
23
import software .amazon .awssdk .services .pinpoint .model .SendMessagesRequest ;
24
24
import software .amazon .awssdk .services .pinpoint .model .PinpointException ;
25
+ import software .amazon .awssdk .services .pinpointemail .PinpointEmailClient ;
26
+ import software .amazon .awssdk .services .pinpointemail .model .Body ;
27
+ import software .amazon .awssdk .services .pinpointemail .model .Content ;
28
+ import software .amazon .awssdk .services .pinpointemail .model .Destination ;
29
+ import software .amazon .awssdk .services .pinpointemail .model .EmailContent ;
30
+ import software .amazon .awssdk .services .pinpointemail .model .Message ;
31
+ import software .amazon .awssdk .services .pinpointemail .model .SendEmailRequest ;
32
+
25
33
import java .util .HashMap ;
26
34
import java .util .Map ;
27
35
//snippet-end:[pinpoint.java2.send_email.import]
@@ -40,10 +48,12 @@ public class SendEmailMessage {
40
48
public static String charset = "UTF-8" ;
41
49
42
50
// The body of the email for recipients whose email clients support HTML content.
43
- static final String htmlBody = "<h1>Amazon Pinpoint test (AWS SDK for Java 2.x)</h1>"
44
- + "<p>This email was sent through the <a href='https://aws.amazon.com/pinpoint/'>"
45
- + "Amazon Pinpoint</a> Email API using the "
46
- + "<a href='https://aws.amazon.com/sdk-for-java/'>AWS SDK for Java 2.x</a>" ;
51
+ static final String body = """
52
+ Amazon Pinpoint test (AWS SDK for Java 2.x)
53
+
54
+ This email was sent through the Amazon Pinpoint Email API using the AWS SDK for Java 2.x
55
+
56
+ """ ;
47
57
48
58
public static void main (String [] args ) {
49
59
final String usage = """
@@ -52,79 +62,59 @@ public static void main(String[] args) {
52
62
53
63
Where:
54
64
subject - The email subject to use.
55
- appId - The Amazon Pinpoint project/application ID to use when you send this message
56
65
senderAddress - The from address. This address has to be verified in Amazon Pinpoint in the region you're using to send email\s
57
66
toAddress - The to address. This address has to be verified in Amazon Pinpoint in the region you're using to send email\s
58
67
""" ;
59
68
60
- if (args .length != 4 ) {
69
+ if (args .length != 3 ) {
61
70
System .out .println (usage );
62
71
System .exit (1 );
63
72
}
64
73
65
74
String subject = args [0 ];
66
- String appId = args [1 ];
67
- String senderAddress = args [2 ];
68
- String toAddress = args [3 ];
75
+ String senderAddress = args [1 ];
76
+ String toAddress = args [2 ];
69
77
System .out .println ("Sending a message" );
70
- PinpointClient pinpoint = PinpointClient .builder ()
78
+ PinpointEmailClient pinpoint = PinpointEmailClient .builder ()
71
79
.region (Region .US_EAST_1 )
72
80
.build ();
73
81
74
- sendEmail (pinpoint , subject , appId , senderAddress , toAddress );
82
+ sendEmail (pinpoint , subject , senderAddress , toAddress );
75
83
System .out .println ("Email was sent" );
76
84
pinpoint .close ();
77
85
}
78
86
79
- public static void sendEmail (PinpointClient pinpoint ,
80
- String subject ,
81
- String appId ,
82
- String senderAddress ,
83
- String toAddress ) {
84
-
87
+ public static void sendEmail (PinpointEmailClient pinpointEmailClient , String subject , String senderAddress , String toAddress ) {
85
88
try {
86
- Map <String , AddressConfiguration > addressMap = new HashMap <>();
87
- AddressConfiguration configuration = AddressConfiguration .builder ()
88
- .channelType (ChannelType .EMAIL )
89
- .build ();
90
-
91
- addressMap .put (toAddress , configuration );
92
- SimpleEmailPart emailPart = SimpleEmailPart .builder ()
93
- .data (htmlBody )
94
- .charset (charset )
95
- .build ();
96
-
97
- SimpleEmailPart subjectPart = SimpleEmailPart .builder ()
98
- .data (subject )
99
- .charset (charset )
89
+ Content content = Content .builder ()
90
+ .data (body )
100
91
.build ();
101
92
102
- SimpleEmail simpleEmail = SimpleEmail .builder ()
103
- .htmlPart (emailPart )
104
- .subject (subjectPart )
93
+ Body messageBody = Body .builder ()
94
+ .text (content )
105
95
.build ();
106
96
107
- EmailMessage emailMessage = EmailMessage .builder ()
108
- .body (htmlBody )
109
- .fromAddress (senderAddress )
110
- .simpleEmail (simpleEmail )
97
+ Message message = Message .builder ()
98
+ .body (messageBody )
99
+ .subject (Content .builder ().data (subject ).build ())
111
100
.build ();
112
101
113
- DirectMessageConfiguration directMessageConfiguration = DirectMessageConfiguration .builder ()
114
- .emailMessage ( emailMessage )
102
+ Destination destination = Destination .builder ()
103
+ .toAddresses ( toAddress )
115
104
.build ();
116
105
117
- MessageRequest messageRequest = MessageRequest .builder ()
118
- .addresses (addressMap )
119
- .messageConfiguration (directMessageConfiguration )
106
+ EmailContent emailContent = EmailContent .builder ()
107
+ .simple (message )
120
108
.build ();
121
109
122
- SendMessagesRequest messagesRequest = SendMessagesRequest .builder ()
123
- .applicationId (appId )
124
- .messageRequest (messageRequest )
110
+ SendEmailRequest sendEmailRequest = SendEmailRequest .builder ()
111
+ .fromEmailAddress (senderAddress )
112
+ .destination (destination )
113
+ .content (emailContent )
125
114
.build ();
126
115
127
- pinpoint .sendMessages (messagesRequest );
116
+ pinpointEmailClient .sendEmail (sendEmailRequest );
117
+ System .out .println ("Message Sent" );
128
118
129
119
} catch (PinpointException e ) {
130
120
System .err .println (e .awsErrorDetails ().errorMessage ());
0 commit comments