Reputation: 125
I want to send email from my java application to gmail account I used the following code and javaMail API ,But Gmail not accepted username and password and exception thrown Can anybody help me how can I fix this issue?
MailService.java
public class MailService {
String email;
String content;
public void sendMail(String email,String content)
{
this.email=email;
this.content=content;
// Recipient's email ID needs to be mentioned.
String to = email;
// Sender's email ID needs to be mentioned
String from = [email protected];
final String username = "myusername";//change accordingly
final String password = "*******";//change accordingly
// Assuming you are sending email through relay.jangosmtp.net
String host = "smtp.gmail.com";
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", "587");
// Get the Session object.
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
// Create a default MimeMessage object.
Message message = new MimeMessage(session);
// Set From: header field of the header.
message.setFrom(new InternetAddress(from));
// Set To: header field of the header.
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(to));
// Set Subject: header field
message.setSubject("Did you get my message?");
// Now set the actual message
message.setText(content);
// Send message
Transport.send(message);
System.out.println("Sent message successfully....");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
Upvotes: 1
Views: 11945
Reputation: 311
You can try to allow unsecure applications, it worked for me.
Steps for Gmail account :
See this link for Gmail and G-Suite.
Upvotes: 3
Reputation: 333
To be able send mail messages via your gmail account, you should allow unsecure applications (which your application is by gmail's point of view) in google account security settings.
UPD: Also, if you want to see debug messages, use next java mail property:
props.put("mail.debug", "true");
It can help you to find out what happening behind the scenes.
Upvotes: 13