Hola. Tengo implementada una jsp de ejemplo a través de la cual intento enviar un mail con un archivo adjunto y una url. Tengo hechas otras jsp en las que envío simplemente texto o HTML y funcionan bien. Pero con esta en primer lugar me aparece un error indicando:
Error de servlet generado:
The type PasswordAuthentication is ambiguous
Si vuelvo a intentarlo el correo sale correctamente. Lo correos los mando desde una cuenta de Yahoo, pero curiosamente, ponga la dirección de destino que ponga todos llegan a la propia cuenta de Yahoo y no a la de Hotmail, por ejemplo. Si quito la cabecera java.net.* y no adjunto la URL también funciona correctamente.
El código es el siguiente:
<%@ page import="java.util.*,javax.mail.*,javax.mail.internet.*,javax.activation.*,java.net.*" %>
<%
class SMTPAuthentication extends javax.mail.Authenticator
{
public PasswordAuthentication getPasswordAuthentication()
{
String username = "nombre de usuario";
String password = "password";
return new PasswordAuthentication(username, password);
}
}
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.correo.yahoo.es");
props.put("mail.smtp.auth", "true");
SMTPAuthentication auth = new SMTPAuthentication();
Session s = Session.getInstance(props, auth);
MimeMessage message = new MimeMessage(s);
InternetAddress from = new InternetAddress("direccion de yahoo");
message.setFrom(from);
InternetAddress to = new InternetAddress("direccion de destino");
message.addRecipient(Message.RecipientType.TO, to);
message.setSubject("Probando DataHandlers.");
MimeMultipart mm = new MimeMultipart();
MimeBodyPart mbp = new MimeBodyPart();
DataHandler dh = new DataHandler("Probando un DataHanler", "text/plain");
mbp.setFileName("mensaje.txt");
mbp.setDataHandler(dh);
mm.addBodyPart(mbp);
mbp = new MimeBodyPart();
URLDataSource uds = new URLDataSource(new URL("una URL"));
dh = new DataHandler(uds);
mbp.setDataHandler(dh);
mbp.setFileName("url.txt");
mm.addBodyPart(mbp);
mbp = new MimeBodyPart();
FileDataSource fds = new FileDataSource("C:/apache-tomcat-5.5.20/webapps/begjsp-ch17/test.txt");
dh = new DataHandler(fds);
mbp.setDataHandler(dh);
mbp.setFileName("test.txt");
mm.addBodyPart(mbp);
message.setContent(mm);
// Las siguientes dos líneas son específicas de Yahoo
Store store = s.getStore("pop3");
store.connect("pop.correo.yahoo.es", "usuario_yahoo", "password");
Transport.send(message);
// La siguiente línea es específica de Yahoo
store.close();
%>