Enviar Email

Fala galera…,

Como faço para enviar email atraves de JavaScript :?:

Valeu… :smiley:

só pode ser se for em javaScript é ?

eu quero uma coisas simples, não quero usar um javamail…

utilizar JavaMail não é tão complicado assim, segue o codigo de uma action struts que envia e-mail usando Java Mail, o form que ela usa só tem as propriedades que são lidas ali mesmo :slight_smile:

[code]// Created by Xslt generator for Eclipse.
// XSL : not found (java.io.FileNotFoundException: (The system cannot find the path specified))
// Default XSL used : easystruts.jar$org.easystruts.xslgen.JavaClass.xsl

package br.com.usiinformatica.site.action;

import java.util.Properties;

import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import br.com.usiinformatica.site.form.EnvioEmailForm;

/**

  • SendMailAction.java created by EasyStruts - XsltGen.

  • http://easystruts.sf.net

  • created on 04-10-2003

  • XDoclet definition:

  • @struts:action path="/sendmail" name=“envioEmailForm” input="/contatos.do" validate=“true” scope = “request”

  • @struts:action-forward name=“failure” path=“tiles.contatos”

  • @struts:action-forward name=“success” path=“tiles.contatos.ok”
    */
    public class SendMailAction extends Action {

    // --------------------------------------------------------- Instance Variables

    // --------------------------------------------------------- Methods

    /**

    • Method execute
    • @param ActionMapping mapping
    • @param ActionForm form
    • @param HttpServletRequest request
    • @param HttpServletResponse response
    • @return ActionForward
    • @throws Exception
      */
      public ActionForward execute(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws Exception {
      try{
      EnvioEmailForm envioEmailForm = (EnvioEmailForm) form;
      Properties props = new Properties();
      props.put(“mail.smtp.host”, “mail.usiinformatica.com.br”);
      props.put(“mail.transport.protocol”, “smtp”);
      Session s = Session.getInstance(props, null);
      MimeMessage message = new MimeMessage(s);
      InternetAddress from = new InternetAddress(envioEmailForm.getEmail());
      message.setFrom(from);
      String toAddress = “rodrigo@usiinformatica.com.br”;
      InternetAddress to = new InternetAddress(toAddress);
      message.addRecipient(MimeMessage.RecipientType.TO, to);
      message.setSubject(envioEmailForm.getAssunto());
      message.setContent(envioEmailForm.getTexto(), “text/html”);
      Transport.send(message);
      }catch(Exception e){
      ActionErrors err = new ActionErrors();
      err.add(ActionErrors.GLOBAL_ERROR,new ActionError(e.getMessage()));
      saveErrors(request,err);
      e.printStackTrace();
      return mapping.findForward(“failure”);
      }
      return mapping.findForward(“success”);
      }

}[/code]

Caro Ubiratan,

O que é necessário configurar tb ? É necessário de algum pacote ?
É necessário configurar o classpath, ou criar alguma coisa extra ao código ?

Eu tentei compilar o código, e apareceu a seguinte mensagem de erro:

SendMailAction.java:13: package javax.servlet.http does not exist
import javax.servlet.http.HttpServletRequest;
^
SendMailAction.java:14: package javax.servlet.http does not exist
import javax.servlet.http.HttpServletResponse;
^
SendMailAction.java:16: package org.apache.struts.action does not exist
import org.apache.struts.action.Action;
^
SendMailAction.java:17: package org.apache.struts.action does not exist
import org.apache.struts.action.ActionError;
^
SendMailAction.java:18: package org.apache.struts.action does not exist
import org.apache.struts.action.ActionErrors;
^
SendMailAction.java:19: package org.apache.struts.action does not exist
import org.apache.struts.action.ActionForm;
^
SendMailAction.java:20: package org.apache.struts.action does not exist
import org.apache.struts.action.ActionForward;
^
SendMailAction.java:21: package org.apache.struts.action does not exist
import org.apache.struts.action.ActionMapping;
^
SendMailAction.java:23: package br.com.usiinformatica.site.form does not exist
import br.com.usiinformatica.site.form.EnvioEmailForm;
^
SendMailAction.java:35: cannot resolve symbol
symbol : class Action
location: class br.com.usiinformatica.site.action.SendMailAction
public class SendMailAction extends Action {
^
SendMailAction.java:51: cannot resolve symbol
symbol : class ActionMapping
location: class br.com.usiinformatica.site.action.SendMailAction
ActionMapping mapping,
^
SendMailAction.java:52: cannot resolve symbol
symbol : class ActionForm
location: class br.com.usiinformatica.site.action.SendMailAction
ActionForm form,
^
SendMailAction.java:53: cannot resolve symbol
symbol : class HttpServletRequest
location: class br.com.usiinformatica.site.action.SendMailAction
HttpServletRequest request,
^
SendMailAction.java:54: cannot resolve symbol
symbol : class HttpServletResponse
location: class br.com.usiinformatica.site.action.SendMailAction
HttpServletResponse response)
^
SendMailAction.java:50: cannot resolve symbol
symbol : class ActionForward
location: class br.com.usiinformatica.site.action.SendMailAction
public ActionForward execute(
^
SendMailAction.java:57: cannot resolve symbol
symbol : class EnvioEmailForm
location: class br.com.usiinformatica.site.action.SendMailAction
EnvioEmailForm envioEmailForm = (EnvioEmailForm) form;
^
SendMailAction.java:57: cannot resolve symbol
symbol : class EnvioEmailForm
location: class br.com.usiinformatica.site.action.SendMailAction
EnvioEmailForm envioEmailForm = (EnvioEmailForm) form;
^
SendMailAction.java:72: cannot resolve symbol
symbol : class ActionErrors
location: class br.com.usiinformatica.site.action.SendMailAction
ActionErrors err = new ActionErrors();
^
SendMailAction.java:72: cannot resolve symbol
symbol : class ActionErrors
location: class br.com.usiinformatica.site.action.SendMailAction
ActionErrors err = new ActionErrors();
^
SendMailAction.java:73: cannot resolve symbol
symbol : variable ActionErrors
location: class br.com.usiinformatica.site.action.SendMailAction
err.add(ActionErrors.GLOBAL_ERROR,new ActionError(e.getMessage()));

                ^

SendMailAction.java:73: cannot resolve symbol
symbol : class ActionError
location: class br.com.usiinformatica.site.action.SendMailAction
err.add(ActionErrors.GLOBAL_ERROR,new ActionError(e.getMessage()));

                                              ^

21 errors

precisa do mail.jar e do activation.jar
se tu quiser executar a action direto não vai funcionar, ela só vai rodar em uma aplicação WEB com o struts rodando, mas faz o seguinte, retira tudo o que tiver servlet no nome do codigo, e adiciona o metodo main para rodar ela direto

public ActionForward execute (
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
Correio Correio;
try{
[color=red]Correio correio = (Correio) form;[/color]
Properties props = new Properties();
props.put(“mail.smtp.host”, “mail.bancodobrasil.com.br”);
props.put(“mail.transport.protocol”, “smtp”);
Session s = Session.getInstance(props, null);
MimeMessage message = new MimeMessage(s);
InternetAddress from = new InternetAddress(correio.getDestinatario());
message.setFrom(from);
String toAddress = "jvpf_velloso@hotmail.com";
InternetAddress to = new InternetAddress(toAddress);
message.addRecipient(MimeMessage.RecipientType.TO, to);
message.setSubject(correio.getAssunto());
message.setContent(correio.getMensagem(), “text/html”);
Transport.send(message);
}catch(Exception e){
ActionErrors err = new ActionErrors();
err.add(ActionErrors.GLOBAL_ERROR,new ActionError(e.getMessage()));
saveErrors(request,err);
e.printStackTrace();
return mapping.findForward(“failure”);
}
return mapping.findForward(“success”);
}

}

Obs.: Minha dúvida esta justamente onde mudei a cor pra vermelho - esta dando um erro “inconvertibile type”. Me explique se póssivel, essa linha de código e a do GLOBAL_ERRO.

Fico muito agradecido!

Att.:Cobras(Velloso)