Gracias phpnet
te coloco el código javascript que envia via ajax:
function createXMLRequest(){
if (window.XMLHttpRequest) {// Mozilla,Safari,...
return new XMLHttpRequest();
}else if(window.ActiveXObject) {// IE
try {
return new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
return new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){}
}
}
}
var ResponderContacto_ = createXMLRequest();
var request;
var actualizarTBody;
var id_Contacto=0;
var elemento = null;
var READY_STATE_UNINITIALIZED=0;
var READY_STATE_LOADING=1;
var READY_STATE_LOADED=2;
var READY_STATE_INTERACTIVE=3;
var READY_STATE_COMPLETE=4;
var indice ="";
function ResponderContacto(id,elemen,mensaje){
id_Contacto = id;
elemento = elemen;
indice = document.getElementById('esperaImagenEliminar-'+id_Contacto).innerHTML;
ResponderContacto_.onreadystatechange=onReadyState ChangeResponder;
ResponderContacto_.open('POST','contactosResponder .do', true);
ResponderContacto_.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ResponderContacto_.setRequestHeader("Accept-Charset", "UTF-8");
ResponderContacto_.send("id="+id_Contacto+"&mensaj e="+encodeURI(mensaje)+"&responder=enviar");
}
function onReadyStateChangeResponder() {
var ready=ResponderContacto_.readyState;
var data=null;
if (ready==READY_STATE_COMPLETE){
var response = null;
response = ResponderContacto_.responseText;
var fechaIdent;
retorno = response.substring(0,5);
if (retorno == "exito")
{
document.getElementById('respuestacorreo-'+id_Contacto).style.display = 'none';
document.getElementById('mensaje-'+id_Contacto).style.display = '';
setTimeout("timer()", 3500);
}else if(retorno[0] == 'NOOK') alert('El Contacto no pudo ser eliminado...Intente más tarde');
}else if(ready== READY_STATE_LOADING){
document.getElementById('esperaImagenEliminar-'+id_Contacto).innerHTML = '<img src="imagenes/indicator_white.gif" alt="indicadorEspera"/>';
}else if(ready== READY_STATE_LOADED){
document.getElementById('esperaImagenEliminar-'+id_Contacto).innerHTML = indice;
}
}
function timer()
{
setTimeout("timer()", 3500);
document.getElementById('nuevo-'+id_Contacto).style.display = 'none';
document.getElementById('fila-'+id_Contacto).className = 'contenidoCeldaLeido';
}
Y este es mi clase que recibe la data, la procesa y envía:
package contactenos.accion;
import java.sql.SQLException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import contactenos.modelo.ManejadorContactenos;
import contactenos.modelo.estructura.Contacto;
import java.io.IOException;
import java.io.PrintWriter;
import otusNet.EnvioCorreo;
public class ResponderAccion extends Action
{
public ActionForward execute (ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws SQLException, IOException
{
Contacto contacto = new Contacto();
String rutaOrigen = getServlet().getServletContext().getRealPath("/");
ManejadorContactenos MC = new ManejadorContactenos();
EnvioCorreo envio = new EnvioCorreo();
response.setContentType("text/html");
PrintWriter out = response.getWriter();
if(request.getParameter("responder").equals("envia r")) {
try
{
contacto = MC.consultarContacto(request.getParameter("id"));
envio.envioFormatoContacto("", "RedVim- Respuesta del Contacto",
contacto.getEmail(), "
[email protected]",
contacto.getNombre(),request.getParameter("mensaje "),rutaOrigen);
MC.CambiarStatus("1", contacto.getId());
out.println("exito");
out.flush();
}catch( Exception e)
{
out.println("error");
out.flush();
}
}
if(request.getParameter("responder").equals("elimi nar")) {
try
{
MC.EliminarContacto(request.getParameter("id"));
out.println("exito");
out.flush();
}catch( Exception e)
{
out.println("error");
out.flush();
}
}
if(request.getParameter("responder").equals("marca r")) {
try
{
contacto = MC.consultarContacto(request.getParameter("id"));
if (contacto.getStatus().equals("1"))
{
MC.CambiarStatus("0", contacto.getId());
out.println("exito/0");
}
else
{
MC.CambiarStatus("1", contacto.getId());
out.println("exito/1");
}
out.flush();
}catch( Exception e)
{
out.println("error");
out.flush();
}
}
return null;
}
}
Por último el método que envia el coreo (pero mal)
public void envioFormatoContacto( String mensaje, String asunto, String to, String from, String nombre,String mensajeAEnviar, String ruta)
{
try { //ESTO ES LO QUE NECESITAS PARA ENVIAR EL CORREO, CLARO CON LOS VALORES DE LAS VARIABLES
smtpServer = "localhost";
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", smtpServer);
Session session = Session.getDefaultInstance(props, null);
session.setDebug(true);
Transport transport = session.getTransport();
MimeMessage msg = new MimeMessage(session);
msg.setSubject("RedVim - Confirmación de registro de contacto");
msg.setFrom(new InternetAddress(from));
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
MimeMultipart multipart = new MimeMultipart();
BodyPart messageBodyPart = new MimeBodyPart();
String htmlText = "<img src=\"cid:image\">";
htmlText = htmlText +"<h2>RED VENEZOLANA DE INVESTIGACIÓN EN MICROALGAS \"RedVIM\"</h2>";
htmlText = htmlText +"<h2>Confirmación de registro de Contacto</h2>";
htmlText = htmlText +"<h3>Gracias por haber visitado nuestro sitio web: www.redvim.com.ve</h3>";
htmlText = htmlText +"<h3>Revisaremos sus comentarios</h3>";
System.out.println(htmlText);
htmlText =htmlText + "<div style=\"background-color: #CED9C4;border: 1px solid #FFB901;height: 45px;" +
"text-align: center;background-position: center;width: 400px;margin-left: 70px;margin-top: 20px;" +
"margin-bottom: 20px;font-weight: bold;\">" +mensajeAEnviar+"</div>";
messageBodyPart.setContent(htmlText, "text/html");
multipart.addBodyPart(messageBodyPart);
messageBodyPart = new MimeBodyPart();
DataSource fds = new FileDataSource (ruta+"imagenes/redvimlogo.jpg");
messageBodyPart.setDataHandler(new DataHandler(fds));
messageBodyPart.setHeader("Content-ID","<image>");
multipart.addBodyPart(messageBodyPart);
msg.setContent(multipart);
transport.connect();
transport.sendMessage(msg, msg.getRecipients(Message.RecipientType.TO));
transport.close();
} catch (Exception ex) {ex.printStackTrace();}
}