Pq esse codigo nao funciona?

8 respostas
R
pessoal, usando o proprio exemplo do site do jakarta escrevi esse codigo.
package fsmUrl;

import java.net.MalformedURLException;
import java.net.URL;

import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;

public class SendMail {

	public static void main(String[] args) throws EmailException,
			MalformedURLException {
		HtmlEmail email = new HtmlEmail();
		email.setHostName("mail.gmail.com");
		email.addTo("[email removido]", "raphael");
		email.setFrom("[email removido]", "raphaelF");
		email.setSubject("TEST");
		email.setMsg("Mensagem de teste");
		
		URL url = new URL("http://www.google.com.br");
		String cid = email.embed(url, "Apache logo");
		email.send();
	}
}
porem ao executar ele da esse erro... alguem sabe o pq??
Exception in thread "main" org.apache.commons.mail.EmailException: Sending the email to the following server failed : mail.gmail.com:25
	at org.apache.commons.mail.Email.sendMimeMessage(Email.java:873)
	at org.apache.commons.mail.Email.send(Email.java:898)
	at fsmUrl.SendMail.main(SendMail.java:22)
Caused by: javax.mail.MessagingException: Unknown SMTP host: mail.gmail.com;
  nested exception is:
	java.net.UnknownHostException: mail.gmail.com
	at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1280)
	at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
	at javax.mail.Service.connect(Service.java:275)
	at javax.mail.Service.connect(Service.java:156)
	at javax.mail.Service.connect(Service.java:105)
	at javax.mail.Transport.send0(Transport.java:168)
	at javax.mail.Transport.send(Transport.java:98)
	at org.apache.commons.mail.Email.sendMimeMessage(Email.java:863)
	... 2 more
Caused by: java.net.UnknownHostException: mail.gmail.com
	at java.net.PlainSocketImpl.connect(Unknown Source)
	at java.net.SocksSocketImpl.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:232)
	at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
	at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1250)
	... 9 more

8 Respostas

Dieval_Guizelini

Veja aqui:

at fsmUrl.SendMail.main(SendMail.java:22) Caused by: javax.mail.MessagingException: <b>Unknown SMTP host</b>: mail.gmail.com; nested exception is: java.net.UnknownHostException: <b>mail.gmail.com</b>

O seu DNS não resolveu o endereço: mail.gmail.com

verifiquei aqui e também não localizei, verifique o nome do servidor de smtp do gmail.

fw

francofabio

eh o seguinte o gmail utiliza SMTP com SSL então a porta que ele escuta eh outra, num sei se o commons mail tem suporte a SMTP com SSL vc tem que verificar na documentação, se vc utilizar outro servidor SMTP sem SSL com certeza seu código vai funcionar.

R

uma duvida pessoal,

  1. qual seria o host do hotmail???
    2)minha aplicação será apenas para envio de email html, entao qual host coloco pro programa enviar pra qualquer email???
  2. ainda vou ler a api do commons mas caso nao de suporte a ssl, qual outro modo que eu tenho para enviar email em formato HTML???
francofabio

vc pode utilizar commons-email mesmo eh soh vc utilizar outro sevidor SMTP para enviar as mensagens, quanto ao servidor do hotmail até hj num vi ñ.

R

amigo, segui seu conselho e pelo menos os erros diminuiram :smiley:
agora o erro é

Exception in thread "main" org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.fsm.com.br:25 at org.apache.commons.mail.Email.sendMimeMessage(Email.java:873) at org.apache.commons.mail.Email.send(Email.java:898) at fsmUrl.SendMail.main(SendMail.java:24) Caused by: javax.mail.AuthenticationFailedException at javax.mail.Service.connect(Service.java:306) at javax.mail.Service.connect(Service.java:156) at javax.mail.Service.connect(Service.java:105) at javax.mail.Transport.send0(Transport.java:168) at javax.mail.Transport.send(Transport.java:98) at org.apache.commons.mail.Email.sendMimeMessage(Email.java:863) ... 2 more

naldoCesar

olha eu tentei aqui e funciona , porem eu usei envez de mail.gmail.com

o nome mail.google.com

faloras

testa ai

!!!

R

Pessoal, vlw, funcionou :smiley:
o que o amigo francofabio funcionou… o erro que tava dando é que eu tava usado a logica da pagina web para me logar… no gmail ele só pode o nome de usuario… ai eu colocava só o nome de usuario pra me autenticar :oops:
foi só colocar o nome completo([email removido]) que funcionou sem problemas :smiley:

eu só venho pedir mais uma ajuda…esse programa ira enviar email a apartir de outro programa que retorna(dentro de um jtable de coluna unica) varios emails…
entao vem as perguntas.

  1. como retorno a String correspondente ao conteudo de uma linha X no jtable??
  2. usando o jakarta mail e a classe HtmlEmail, qual a sintaxe para enviar emails para varios destinatarios???(ja tentei concatenar com espaço, com virgula e com ponto e virgula mas a mensagem é essa)

Exception in thread "main" org.apache.commons.mail.EmailException: Illegal address at org.apache.commons.mail.Email.createInternetAddress(Email.java:427) at org.apache.commons.mail.Email.addTo(Email.java:490) at org.apache.commons.mail.Email.addTo(Email.java:475) at fsmUrl.EnviaEmail.sendEmail(EnviaEmail.java:44) at fsmUrl.Teste.main(Teste.java:21) Caused by: javax.mail.internet.AddressException: Illegal address in string ``[email removido],[email removido]'' at javax.mail.internet.InternetAddress.<init>(InternetAddress.java:94) at org.apache.commons.mail.Email.createInternetAddress(Email.java:414) ... 4 more
será que o jakartamail atraves da classe HtmlEmail nao permite varios destinatarios de uma só vez???

JMan

Cara vc não vai conseguir enviar isso sem se autenticar no host antes. Veja a msg.

Caused by: javax.mail.AuthenticationFailedException

Se fosse fácil assim, seria o sonho dos spamers!!!

Instala um servidor na sua máquina e usa ele, vai ser mto mais fácil se quiser tentar!!!

Criado 23 de junho de 2007
Ultima resposta 23 de jun. de 2007
Respostas 8
Participantes 5