Labels

9 jul 2010

Java Email

Ps d nuevo aquí con mis tutos y es que esta ocasión, quizás algunos se percataron, envié algunos correillos desde una aplicacioncita hecha en java. Bueno aquí les dejo el código fuente ya para que sólo copien, peguen, compilen y corran, jeje. Por supuesto, necesitarán bajar la biblioteca mail de java y poner el .jar en la carpeta:

C:\Program Files\Java\jdk1.6.0\jre\lib\ext

para que funcione, les dejo el link:

http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/javamail-1.4.3.zip?BundledLineItemUUID=MdiJ_hCui1UAAAEpsmsSMrXB&OrderID=5pKJ_hCuP4UAAAEpoWsSMrXB&ProductID=J3tIBe.pJGsAAAElR5Jh6wjK&FileName=/javamail-1.4.3.zip


import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class EnviarMail extends JFrame implements ActionListener{

public JTextField txtFrom = new JTextField();
public JPasswordField txtPsw = new JPasswordField();
public JTextField txtDest = new JTextField();
public JTextField txtAsunto = new JTextField();
public JTextArea txtBody = new JTextArea();
public JButton cmdEnviar = new JButton("Enviar");

public JLabel lblDe = new JLabel("De:");
public JLabel lblPsw = new JLabel("Password:");
public JLabel lblPara = new JLabel("Para (separar por ','):");
public JLabel lblAsunto = new JLabel("Asunto:");
public JLabel lblMsg = new JLabel("Mensaje:");

public JScrollPane scroll;

public static void main(String[] args){
new EnviarMail();
}//Fin del main

//Constructor de la clase e implementación de interfaz
public EnviarMail(){
setVisible(true);
setSize(415, 415);
setLayout(null);
getContentPane().setBackground(Color.black);
setTitle("E-Mails");
setDefaultCloseOperation(EXIT_ON_CLOSE);

scroll = new JScrollPane(txtBody);
txtPsw.setEchoChar('*');

lblDe.setForeground(Color.gray);
lblPsw.setForeground(Color.gray);
lblPara.setForeground(Color.gray);
lblAsunto.setForeground(Color.gray);
lblMsg.setForeground(Color.gray);

lblDe.setBounds(10, 10, 200, 10);
lblPsw.setBounds(220, 10, 120, 10);
lblPara.setBounds(10, 50, 380, 15);
lblAsunto.setBounds(10, 95, 380, 10);
lblMsg.setBounds(10, 135, 180, 15);

txtFrom.setBounds(10, 25, 200, 20);
txtPsw.setBounds(220, 25, 120, 20);
txtDest.setBounds(10, 70, 380, 20);
txtAsunto.setBounds(10, 110, 380, 20);
scroll.setBounds(10, 155, 380, 190);
cmdEnviar.setBounds(160, 355, 80, 20);

cmdEnviar.addActionListener(this);

add(txtFrom);
add(txtPsw);
add(txtDest);
add(txtAsunto);
add(scroll);
add(cmdEnviar);

add(lblDe);
add(lblPsw);
add(lblPara);
add(lblAsunto);
add(lblMsg);

}

public void actionPerformed(ActionEvent evt){
if (evt.getSource().equals(cmdEnviar) && validaDatos())
try{
// Propiedades de la conexión
Properties props = new Properties();
props.setProperty("mail.smtp.host", "smtp.gmail.com");
props.setProperty("mail.smtp.starttls.enable", "true");
props.setProperty("mail.smtp.port", "587");
props.setProperty("mail.smtp.user", txtFrom.getText());
props.setProperty("mail.smtp.auth", "true");

// Preparamos la sesion
Session session = Session.getDefaultInstance(props);

// Construimos el mensaje
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress("yo@yo.com"));

//Metemos los destinatarios
for (int i = 0; i < txtDest.getText().split(",").length; i++)
message.addRecipient( Message.RecipientType.TO, new InternetAddress(txtDest.getText().split(",")[i]));

message.setSubject(txtAsunto.getText());
message.setText(txtBody.getText());

// Lo enviamos.
Transport trans = session.getTransport("smtp");
trans.connect(txtFrom.getText(), txtPsw.getText());
trans.sendMessage(message, message.getAllRecipients());

// Cierre.
trans.close();

JOptionPane.showMessageDialog(this, "Se ha mandado el correo existosamente", "¡Enviado!", 1);

}
catch (Exception e){ e.printStackTrace(); }
}

//Validamos que se tengan los datos necesarios
public boolean validaDatos(){
if (txtFrom.getText().equals("") || txtPsw.getText().equals("") || txtDest.getText().equals("")){
JOptionPane.showMessageDialog(this, "Capture todos los datos", "Error", 0);
return false;
}
return true;

}

}//Fin de clase


Y bueno, eso es todo lo que hay que hacer para enviar correos desde java, jeje, ahora que si se ponen de malotes, pueden meter lo de enviar en un ciclo y lanzar correos hasta que les clausuren la cuenta, jajaja, ¬¬!

Si tienen dudas, aclaraciones, quejas, comentarios, etc, ahí me los dejan en los comments.

¡Y arriba el Software libre!

0 comentarios:

Publicar un comentario

Los comentarios son gratis......deja uno