· 8 years ago · Jun 28, 2018, 09:56 PM
1Exception in thread "main" javax.mail.SendFailedException: Sending failed;
2 nested exception is:
3 javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first. f3sm9277120nfh.74
4
5 at javax.mail.Transport.send0(Transport.java:219)
6 at javax.mail.Transport.send(Transport.java:81)
7 at SendMailUsingAuthentication.postMail(SendMailUsingAuthentication.java:81)
8 at SendMailUsingAuthentication.main(SendMailUsingAuthentication.java:44)
9
10props.put("mail.smtp.starttls.enable","true");
11
12import java.util.Properties;
13import javax.mail.Authenticator;
14import javax.mail.Message;
15import javax.mail.MessagingException;
16import javax.mail.PasswordAuthentication;
17import javax.mail.Session;
18import javax.mail.Transport;
19import javax.mail.internet.InternetAddress;
20import javax.mail.internet.MimeMessage;
21
22Transport transport = session.getTransport("smtps");
23
24private static void send(
25 final String username,
26 final String password,
27 final String recipients,
28 final String subject,
29 final String body)
30 throws Exception
31{
32 final Session session = Session.getInstance(System.getProperties(), null);
33 final Message msg = new MimeMessage(session);
34 final String senderEmail = username.contains("@") ? username : (username + "@gmail.com");
35 msg.setFrom(new InternetAddress(senderEmail));
36
37 final Address[] recipientAddresses = InternetAddress.parse(recipients);
38 msg.setRecipients(Message.RecipientType.TO, recipientAddresses);
39
40 msg.setSentDate(new Date());
41 msg.setSubject(subject);
42 msg.setText(body);
43
44 final Transport transport = session.getTransport("smtps");
45 transport.connect(GMAIL_SMTP_HOST, GMAIL_SMTP_PORT, username, password);
46 transport.sendMessage(msg, recipientAddresses);
47 transport.close();
48}