Sou novato e ainda com algumas dificuldades conceituais. Estou tentando desenvolver um aplicativo que gere um relatório utilizando iReport e envie via e-mail, a parte do relatório já está redonda, agora empaquei no envio do e-mail.
Segui algumas dicas que encontrei na web e montei meu método void enviaemail(), segue o código parcial:
[code]
public void enviaemail() {
Properties p = new Properties();
p.put(“mail.transport.protocol”, “smtp”);
p.put(“mail.smtp.starttls.enable”, “true”);
p.put(“mail.smtp.host”, “smtp.gigaplast.com.br”);
p.put(“mail.smtp.auth”, “true”);
Authenticator auth = new SMTPAuthenticator();
Session secao = Session.getInstance(p, auth);
MimeMessage msg = new MimeMessage(secao);
Por algum motivo a IDE não está reconhecendo o método SMTPAuthenticator() que eu chamo quando instancio a variável auth do tipo Authenticator (linha 7) e meu código não compila, seria um problema nos imports?
Adicionei sim, mas acabei de notar que o método SMTPAuthenticathor não existe, eu preciso implementá-lo, é que virou um clichê e todo mundo usa este mesmo nome para o método e em todos os exemplos está do mesmo jeito, logo pensei que fosse o método de alguma lib, mas na verdade preciso implementá-lo.
tenho um código de exemplo de envio de e-mail
Nota que tem uma classe SMTPAuthenticator que extende javax.mail.Authenticator
acho que é só isso que tá faltando no teu código!
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class Mailer {
private String username;
private String password;
public void send() throws Exception {
username = "xxx";
password = "xxx";
Authenticator authenticator = new SMTPAuthenticator();
Session mailSession = Session.getDefaultInstance(props, authenticator);
// uncomment for debugging infos to stdout
//mailSession.setDebug(true);
Transport transport = mailSession.getTransport();
MimeMessage message = new MimeMessage(mailSession);
message.setContent(sb.toString(), "text/plain");
message.setFrom(new InternetAddress(fromAddress));
message.addRecipients(Message.RecipientType.TO, toAddress);
message.setSubject(subject);
transport.connect();
transport.sendMessage(message,
message.getRecipients(Message.RecipientType.TO));
transport.close();
}
private class SMTPAuthenticator extends javax.mail.Authenticator {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
}
}