Tenho que fazer uma metodo em java para enviar email. Eu fiz o seguinte codigo, mas esta dando erro.
import java.io.IOException;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class Email {
private static Session session = null;
private static final String contentType = "text/html";
private static String servidor = "smtp.mail.yahoo.com.br";
public void enviarEmail(String assunto, String mensagem, String de) throws
MessagingException {
String emailPara = "xxxx@yahoo.com.br";
Properties props = new Properties();
props.put("mail.smtp.host", servidor);
props.put("mail.smtp.auth", "true");
Session mailSession = Session.getDefaultInstance (props, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("xxxxx", "123456");}
});
Message message = new MimeMessage(session);
InternetAddress endMail = new InternetAddress(emailPara);
message.addRecipient(Message.RecipientType.TO, endMail);
InternetAddress fromEmail = new InternetAddress(de);
message.setFrom(fromEmail);
message.setSubject(assunto);
MimeMultipart mpRoot = new MimeMultipart("mixed");
MimeMultipart mpContent = new MimeMultipart("alternative");
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setContent(mensagem.toString(), contentType);
mpContent.addBodyPart(mbp1);
MimeBodyPart contentPartRoot = new MimeBodyPart();
contentPartRoot.setContent(mpContent);
mpRoot.addBodyPart(contentPartRoot);
message.setContent(mpRoot);
message.saveChanges();
Transport.send(message);
}
public static void main(String[] args) throws IOException {
Email email = new Email();
try {
email.enviarEmail("Teste assunto","primeira mensagem","xxxx@yahoo.com.br");
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
o erro eh o seguinte:
Exception in thread “main” java.lang.SecurityException: Access to default session denied
at javax.mail.Session.getDefaultInstance(Session.java:311)
at javax.mail.Transport.send0(Transport.java:158)
at javax.mail.Transport.send(Transport.java:98)
at Email.enviarEmail(Email.java:65)
at Email.main(Email.java:73)
Process exited with exit code 1.
alguem poderia me orientar? estou perdido.
me ajudem por favor!
abracos