package negocios.impl.mailSender;
import java.io.IOException;
import java.util.Properties;
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.MimeMessage;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class MailSender2 {
private static final String MAIL_ADMIN_PROP = "mailAdmin";
private static final String PASSSWORD_PROP = "password";
private static final String SMTP_SERVER_PROP = "servidorSMTP";
private static final String PORT_PROP = "puertoEnvio";
String mailReceptor = null;
String asunto = null;
String cuerpo = null;
public MailSender2(String mailReceptor, String asunto, String cuerpo) {
this.mailReceptor = mailReceptor;
this.asunto = asunto;
this.cuerpo = cuerpo;
}
public void send() throws IOException, MessagingException, NamingException {
Properties props = System.getProperties();
Properties mailProps = new Properties();
mailProps.load(this.getClass().getResourceAsStream(
"/META-INF/adminMail.properties"));
String miCorreo = mailProps.getProperty(MAIL_ADMIN_PROP);
String servidorSMTP = mailProps.getProperty(SMTP_SERVER_PROP);
String puertoEnvio = mailProps.getProperty(PORT_PROP);
String pass = mailProps.getProperty(PASSSWORD_PROP);
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", servidorSMTP);
props.put("mail.smtp.user", miCorreo);
props.put("mail.smtp.password", PASSSWORD_PROP);
props.put("mail.smtp.port", puertoEnvio);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.EnableSSL.enable", "true");
InitialContext ctx = new InitialContext();
Session session = (javax.mail.Session) ctx.lookup("java:jboss/mail/Default");
MimeMessage msg = new MimeMessage(session);
String encodingOptions = "text/html; charset=UTF-8";
msg.setHeader("Content-Type", encodingOptions);
msg.setHeader("Content-Transfer-Encoding", "quoted-printable");
msg.setFrom(new InternetAddress(miCorreo));
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(mailReceptor));
msg.setSubject("Some subject", "UTF-8");
msg.setText(mailReceptor, "UTF-8");
Transport transport = session.getTransport("smtps");
transport.connect(servidorSMTP, miCorreo, pass);
transport.sendMessage(msg, msg.getAllRecipients());
transport.close();
}
private class autentificadorSMTP extends javax.mail.Authenticator {
public PasswordAuthentication getPasswordAuthentication() {
Properties mailProps = new Properties();
try {
mailProps.load(this.getClass().getResourceAsStream(
"/META-INF/adminMail.properties"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String miCorreo = mailProps.getProperty(MAIL_ADMIN_PROP);
String password = mailProps.getProperty(PASSSWORD_PROP);
return new PasswordAuthentication(miCorreo, password);
}
}
}