Enviar Email

6 respostas
M

Fala galera…,

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

Valeu… :smiley:

6 Respostas

Leandro_Rangel_Santo

só pode ser se for em javaScript é ?

M

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

urubatan

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 :-)

// 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 = "[email removido]";
			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");
	}

}
Shelson

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

urubatan

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

cobras
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 = <a>"[email removido]</a>";

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)

Criado 24 de setembro de 2003
Ultima resposta 28 de set. de 2010
Respostas 6
Participantes 5