Enviar email

Fiz uma aplicação que só esta sendo possivel enviar email para alguém que está no mesmo servidor que eu estou usando… Quando tento enviar para alguém em outro servidor está acontecendo o seguinte erro:

DEBUG: setDebug: JavaMail version 1.4ea
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host “smtp.unig2001.com.br”, port 25, isSSL false
220 andromeda.unig2001.com.br ESMTP Postfix
DEBUG SMTP: connected to host “smtp.unig2001.com.br”, port: 25

EHLO NOTEBOOK
250-andromeda.unig2001.com.br
250-PIPELINING
250-SIZE 20240000
250-ETRN
250 8BITMIME
DEBUG SMTP: Found extension “PIPELINING”, arg ""
DEBUG SMTP: Found extension “SIZE”, arg "20240000"
DEBUG SMTP: Found extension “ETRN”, arg ""
DEBUG SMTP: Found extension “8BITMIME”, arg ""
DEBUG SMTP: use8bit false
MAIL FROM:marcelo@unig2001.com.br
250 Ok
RCPT TO:marcelofreire2004@yahoo.com.br
554 marcelofreire2004@yahoo.com.br: Relay access denied
DEBUG SMTP: Invalid Addresses
DEBUG SMTP: marcelofreire2004@yahoo.com.br
DEBUG SMTP: Sending failed because of invalid destination addresses
RSET
250 Ok
javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 554 marcelofreire2004@yahoo.com.br: Relay access denied

at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1196)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:584)
at javax.mail.Transport.send0(Transport.java:169)
at javax.mail.Transport.send(Transport.java:98)
at EmailUnig.postMail(EmailUnig.java:67)
at EmailUnig.main(EmailUnig.java:85)

Caused by: com.sun.mail.smtp.SMTPAddressFailedException: 554 marcelofreire2004@yahoo.com.br: Relay access denied

at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1094)
... 5 more

QUIT
221 Bye
ERRO =Invalid Addresses

Alguém pode me ajudar ???

Esse e-mail marcelofreire2004@yahoo.com.br existe?

Pela mensagem de erro:


 DEBUG SMTP: Invalid Addresses
DEBUG SMTP: marcelofreire2004@yahoo.com.br
DEBUG SMTP: Sending failed because of invalid destination addresses 

Mostre como vc implementou o metodo de envio …

A forma que usei para implementar foi a seguinte :

import java.util.Properties;

import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class EmailUnig {
public static void main(String[] args) {
Properties props = new Properties();
props.put (“mail.smtp.host”, “smtp.unig2001.com.br”);
props.put(“mail.smtp.auth”, “false”);
props.put(“mail.smtp.port”, “25”);
Session session = Session.getInstance(props, null);
session.setDebug(true);
Message msg = new MimeMessage(session);

	try {
		msg.setFrom(new InternetAddress("marcelo@unig2001.com.br"));
		msg.setRecipient(Message.RecipientType.TO, new InternetAddress("marcelofreire2004@yahoo.com.br"));
		msg.setSubject("Exemplo");
		msg.setText(" testando o javamail  ");
		Transport.send(msg);
	} catch (MessagingException e) {
		System.out.println("ERRO =" + e.getMessage());
	}
}

}

Olá Marcelão. Beleza!!!?
cara, eu consegui transformar o exemoplo que você me enviou em servlet e está funcionando direitinho. Não será problema com o servidor smtp da UNIG?
Aproveitando estou com um problema com JSTL. Tem como você dar uma olhadinha.

http://www.guj.com.br/posts/list/66644.java

O problema está aqui:

RCPT TO:<marcelofreire2004@yahoo.com.br>
554 <marcelofreire2004@yahoo.com.br>: Relay access denied

Existe alguma regra no servidor de SMTP que não permite que você (marcelo@unig2001.com.br), ou sua máquina (andromeda.unig2001.com.br), envie e-mail para endereços externos (isto é fazer relay).
Procure o administrador do seu servidor de SMTP (smtp.unig2001.com.br) e verifique qual a regra de relay.

Valeu…

:lol:

vou dar uma olhada…

Agora;;;;;; Porque quando estou no próprio provedor funciona … Isso só acontece quando estou em casa…

Por causa das regras de relay. Por segurança, a maioria dos servidores de SMTP não permite que máquinas fora do domínio a que ele pertence enviem e-mail através dele (relay). Isto evita que qualquer engraçadinho use o servidor para enviar spam. As regras podem se basear em várias parâmetros: endereço IP, dominio, endereço de e-mail, etc. Quando você está na sua casa provavelmente usa a rede do seu provedor de Internet que deve ser diferente do servidor de SMTP.

Obrigado… oyama…

Bom dia Colegas !

marcelofreire2004:

Estou pesquisando justamente sobre envio de e-mail a partir de uma aplicação Swing…
Tentei utilizar o seu código mas esta dando erro nos imports:

import javax.mail.Address; 
import javax.mail.Message; 
import javax.mail.MessagingException; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.AddressException; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeMessage; 

O erro é:

package javax.mais does not exist

Eu tenho que instalar algo adicional para ter este pacote ?

Se alguém puder me ajudar, fico muito agradecido !

[]s

Amigo,

você de baixar a API do javamail :

http://java.sun.com/products/javamail/downloads/index.html

Boa tarde colegas !

Eu fiz o download, mas onde e o que descompacto ?
Tem um .jar par eu incluir no meu projeto ?

Obrigado a todos.

[]s

Olá amigo. Dentro do arquivo compactado tem uma pasta e dentro desta pasta tem um arquivo mail.jar que você deve inserir no classpath do seu projeto.
Descompacte o mail.jar na pasta lib da sua aplicação. Depois clica com o botão direito em cinma do arquivo e qadiciona ele ao seu build path.
Espero que funcione.
Abraços

Boa tarde colegas !

Consegui importar o mail.jar e os erros dos imports sumiram, nas na execução esta dando o seguinte erro:

[code

DEBUG: setDebug: JavaMail version 1.4ea
Exception in thread “main” java.lang.NoClassDefFoundError: javax/activation/DataSource
at com.atm.util.SendMail.main(SendMail.java:41)
Java Result: 1

[/code]

Alguém pode me ajudar ?

[]s

Posta aqui o código pra gente poder analisar melhor.



 * SendMail.java
 *
 * Created on 14 de Agosto de 2007, 10:04
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package com.atm.util;



import java.util.Properties; 
import javax.mail.Message; 
import javax.mail.MessagingException; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeMessage; 
import javax.mail.*;


/**
 *
 * @author r100320
 */
public class SendMail {

    public static void main(String[] args) { 
        Properties props = new Properties(); 
        
        props.put ("mail.smtp.host", "smtp.meusmtp.com.br"); 
        props.put("mail.smtp.auth", "false"); 
        props.put("mail.smtp.port", "25");         
        
        Session session = Session.getInstance(props, null); 
        session.setDebug(true); 
        Message msg = new MimeMessage(session); 

        try { 
            msg.setFrom(new InternetAddress("meuemail@meudominio.com.br")); 
            msg.setRecipient(Message.RecipientType.TO, new InternetAddress("joseedmilson@gmail.com"));             
            
            msg.setSubject("Exemplo"); 
            msg.setText(" testando o javamail "); 
            Transport.send(msg); 
        } catch (MessagingException e) { 
            System.out.println("ERRO =" + e.getMessage()); 
        } 
    } 
}

Tks.

Agora você deve baixar o Java Activation Framework

http://java.sun.com/products/javabeans/jaf/downloads/index.html

você deve baixar o Activation.jar

os procedimentos a serem feitos são os mesmos que você fez com o mail.jar conforme a orientação do Bruno…

um abraço