Gostaria de confirmar se é de fato possível enviar e-mails setando a máquina que a minha classe java estiver rodando como remetente e enviar o email… sem necessidade de configurar um servidor smtp para envio, sei que o problema disso é que por não ter um IP válido meu e-mail provavelmente será bloqueado.
eu vi essa informação em outro forum onde o rapaz falava q com o Java Mail era possível fazer isso, mas não deu muitos detalhes, alguém já fez algo parecido, seja com java mail ou outra API?
public class SendMail{
private String to, from, host;
private Properties properties;
private Session session;
public SendMail(){
}
public void enviar(){
to = "parateste@gmail.com";
from = "gambazinho@qualquerum.com";
host = "localhost";
properties = System.getProperties();
properties.setProperty("mail.smtp.host", host);
session = Session.getDefaultInstance(properties);
try{
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject("teste");
message.setText("teste de envio");
// enviando o email
Transport.send(message);
System.out.println("Email enviado com sucesso");
}catch (MessagingException e) {
e.printStackTrace();
}
}
public static void main(String args[]){
SendMail email = new SendMail();
email.enviar();
}
}
[/code]
porém recebo o erro abaixo :
javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25;
nested exception is:
java.net.ConnectException: Connection refused
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1934)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638)
at javax.mail.Service.connect(Service.java:295)
at javax.mail.Service.connect(Service.java:176)
at javax.mail.Service.connect(Service.java:125)
at javax.mail.Transport.send0(Transport.java:194)
at javax.mail.Transport.send(Transport.java:124)
at controller.SendMail.enviar(SendMail.java:32)
at controller.SendMail.main(SendMail.java:41)
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:176)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
at java.net.Socket.connect(Socket.java:546)
at java.net.Socket.connect(Socket.java:495)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:288)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:231)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1900)
... 8 more
acredito que da forma como está ele está tentando usar a minha maquina mas acreditando que há um servidor smtp instalado… e minha intenção é enviar sem essa necessidade.
Pelo que sei vc precisa de um servidor de emails para enviar um email. Ou vc usa um servidor tipo gmail, hotmail, ou usa o próprio da empresa por exemplo. Mas no fim das contas, precisa de um servidor, pq quem vai enviar o email é o servidor. O javamail só vai preparar a mensagem para você, dai se comunica com o servidor e faz e ele envia. Pelo menos entendo que é assim que funciona.
"Alexandre Machado axma...@gmail.com wrote: Você pode usar a Java Mail API
para fazer o envio direto (direct delivery). Porém, a não ser que a máquina que roda o seu programa for o MX (Mail Exchanger) do domínio do qual os e-mails partem, a maioria dos servidores com filtro anti-spam vai barrá-los.
Alexandre
Em 16/12/05, Glauber Pires escreveu:
Pessoal,
Estou precisando enviar emails diretamente, fiz uma aplicação de teste com o commons-email da jakarta e tá funcionando blz com o programa “Free SMTP Server” e colocando no HostName “localhost”.
Queria saber como faço para enviar os e-mails diretamente (fazer o papel do Free SMTP Server"), alguém sabe de alguma lib boa e pequena para fazer isso?
Bom, optei por utilizar linux e subi um serviço smtp na minha máquina, o problema é que quando mando pro Gmail cai na caixa de spam e no hotmail o e-mail se quer chega! deve ser o tal de black list pros IPs que o povão acessa, tem alguma forma de contornar isso???