Gracias GreenEyed,
Como supuse, el error inicial vuelve a darme problemas. No era esa la única línea fea :P, la primera también, y creo que es la culpable de que no me funcionase el tema del correo. La línea a la que me refiero (no voy a copiar toda la salida porque es absurdo, ya que es al ppio de la ejecución) es ésta:
INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Archivos de programa\Java\jre1.6.0_03\bin;.;C:\WINDOWS\Sun\Jav a\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Archivos de programa\Java\jre1.6.0_03\bin\client;C:\Archivos de programa\Java\jre1.6.0_03\bin;C:\Archivos de programa\PC Connectivity Solution\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOW S\System32\Wbem;C:\Archivos de programa\MATLAB\R2007b\bin;C:\Archivos de programa\MATLAB\R2007b\bin\win32;C:\Python25;C:\To mcat 6.0.10\lib
Sobra decir que no tengo muy claro qué path es el que quiere encontrar, por lo que aunque imagino que la solución será meterlo en la variable de entorno, no sé cuál poner...
Lo que estoy intentando es mandar un correo con una cuenta de Gmail con el siguiente código:
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
public class Mailer
{
public static void main()
{
Mailer obj = new Mailer();
String server = "smtp.gmail.com";
String userName = "
[email protected]";
String password = "pass";
String fromAddres = "perenganito";
String toAddres = "
[email protected]";
String cc = "";
String bcc = "";
boolean htmlFormat = false;
String subject = "tema";
String body = "prueba";
obj.sendMail(server, userName, password, fromAddres, toAddres, cc, bcc,
htmlFormat, subject, body);
}
public void sendMail(String server, String userName, String password, String fromAddress, String toAddress, String cc, String bcc, boolean htmlFormat, String subject, String body)
{
Properties properties = System.getProperties();
properties.put("mail.smtps.host", server);
properties.put("mail.smtps.auth", "true");
Session ses = Session.getInstance(properties);
ses.setDebug(true);
try{
MimeMessage msg = new MimeMessage(ses);
msg.setFrom(new InternetAddress(fromAddress));
if (toAddress != null)
{
msg.addRecipients(Message.RecipientType.TO, toAddress);
}
if (cc != null)
{
msg.setRecipients(Message.RecipientType.CC
,InternetAddress.parse(cc, false));
}
if (bcc != null)
{
msg.setRecipients(Message.RecipientType.BCC
,InternetAddress.parse(bcc, false));
}
if (htmlFormat)
{
msg.setContent(body, "text/html");
}
else
{
msg.setContent(body, "text/plain");
}
msg.setSubject(subject);
msg.saveChanges();
Transport tr = ses.getTransport("smtps");
tr.connect(server,userName, password);
tr.sendMessage(msg, msg.getAllRecipients());
tr.close();
}
catch(MessagingException e)
{
e.printStackTrace();
}
}
}
class MyPasswordAuthenticator extends Authenticator
{
String user;
String pw;
public MyPasswordAuthenticator (String username, String password)
{
super();
this.user = username;
this.pw = password;
}
public PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(user, pw);
}
}
Pero vamos, que el error tiene que ser que me falta algo en alguna variable de entorno...
Esta vez me espero sin tocar nada, que la otra vez me lié a tocar cosas que no controlaba y terminé como terminé :)
Saludos,
Alberto.