SMTP

(Simple Mail Transfer Protocol) protocolo simple de transferencia de correo, es el protocolo que se utiliza para que dos servidores de correo intercambien mensajes, usa normalmente el puerto 25 en el servidor para establecer la conexión.
Un cliente SMTP se contacta con el servidor SMTP del host destino para entregarle directamente el correo, este nos da seguridad en al entrega al receptor ya que espera que sea guardado con éxito.

Herramienta a utilizar:


-QK SMTP

- Librerias :
*Para descargar el API JavaMail, http://java.sun.com/products/javamail/downloads/index.html
*Para descargar JAF Activation, http://java.sun.com/products/javabeans/glasgow/jaf.html

Compilación
javac JavaMailSamples.java
java JavaMailSamples

Codigo
import javax.activation.*;
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;

public class JavaMailSamples
{
public static void main(String[] args)
{
SendAuthentication.Send();
}
}
class SendAuthentication
{
public static void Send()
{
String host ="192.168.1.33";//Suponiendo que el servidor SMTPsea la propia máquina
String from ="locas@brujas.com";
String to = "lu-lucy20@hotmail.com";

System.out.println ("Prueba para enviar un mail..." + new java.util.Date());
Properties prop = new Properties();
prop.put("mail.smtp.host", host);
/*Esta línea es la que indica al API que debe autenticarse*/
prop.put("mail.smtp.auth", "true");
/*Añadir esta linea si queremos ver una salida detallada del programa*/
//prop.put("mail.debug", "true");
try{
SMTPAuthentication auth = new SMTPAuthentication();
Session session = Session.getInstance(prop , auth );
Message msg = getMessage(session, from, to);
System.out.println ("Enviando ..." );
Transport.send(msg);
System.out.println ("Mensaje enviado ok!");
}
catch (Exception e)
{
ExceptionManager.ManageException(e);
}
}
private static MimeMessage getMessage(Session session, String from, String to)
{
try{
MimeMessage msg = new MimeMessage(session);
msg.setText("El mail desde java. Este mensaje a utilizado autenticacion en el servidor.");
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
msg.setFrom(new InternetAddress(from,"JavaMail en accion"));
return msg;
}
catch (java.io.UnsupportedEncodingException ex)
{
ExceptionManager.ManageException(ex);
return null;
}
catch (MessagingException ex)
{
ExceptionManager.ManageException(ex);
return null;
}
}
}
class SMTPAuthentication extends javax.mail.Authenticator
{
public PasswordAuthentication getPasswordAuthentication()
{
String username = "locas@brujas.com";
String password = "123456";
return new PasswordAuthentication(username, password);
}
}
class ExceptionManager
{
public static void ManageException (Exception e)
{
System.out.println ("Se ha producido una exception");
System.out.println (e.getMessage());
e.printStackTrace(System.out);
}
}

0 comentarios:

Publicar un comentario