Jump to content

Recommended Posts

Posted

boa noite,

tenho necessidade de criar um programa que envie e-mails para uma determinada lista num determinado dia ( tipo uma lembrança ).

o problema é que não faço ideia que classes podem ser utilizadas/necessárias para o envios de e-mails.

se alguem souber gostaria que me dessem umas "luzes" acerca de como funcionam estas ...

obrigado

TaoOo

  • Replies 41
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted

Puro e duro. Mails simples usando as libs da sun que vem com o JDK.

            // Substituir o IP pelo IP do servidor SMTP
            SmtpClient smtpClient = new SmtpClient("192.168.0.1");
            smtpClient.from("origemxpto@xpto.com");
            smtpClient.to("destinoxpto@xpto.com");
    PrintStream message = smtpClient.startMessage();
            message.println("To: destinoxpto@xpto.com");
            message.println("Subject:  A friendly mail message");
            message.println();
            message.println("Hello mail messages world!");
            message.println();
            message.println();
            smtpClient.closeServer();

PS: Fiz uma ou duas correccoes de pormenor ao post inicial

Posted

neste código nao preciso de fazer import de nada ?

Em principio é, não sei de côr nem tenho aqui a API Java à mão mas deve ser preciso importar as bibliotecas de sockets. Digo eu...

"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Posted

hum.. ok muito obrigado, vou analizar isso kd tiver tempo e fazer uns testes, depois digo kk coisa..

ja agora, o ip do servidor é o ip do meu pc k está a fazer de servidor ou é o ip tipo do gmail, hotmail, etc ??

se for este ultimo caso como posso saber kual é o seu ip ?

tks

Posted

ja agora, o ip do servidor é o ip do meu pc k está a fazer de servidor ou é o ip tipo do gmail, hotmail, etc ??

se for este ultimo caso como posso saber kual é o seu ip ?

tks

Depende do servidor que queiras testar. Se quizeres testar com o servidor local metes 127.0.0.1, se quizeres com outro servidor da internet metes o IP dele.

Podes saber o IP através da resolução de nomes.

"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Posted

nao percebi essa parte de saber o ip pela resolucao de nomes :| n faço ideia  o k isso seja :S

Vais à consola ou à linha de comandos e escreves: nslookup "nome do endereço que queres saber o IP"

Ex: nslookup mail.google.com

"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Posted

Em vez de se escrever o IP pode-se escrever o nome (DNS) do servidor, é indiferente.

Hotmail e Gmail não têm servidores SMTP, mas normalmente os ISPs têm.

Não faço ideia dos imports porque o meu IDE gere isso tudo, so tive em atençao se pertenciam a alguma lib/framework macaca... 😛

Posted

Hotmail e Gmail não têm servidores SMTP, mas normalmente os ISPs têm.

Estás enganado, pelo menos o Gmail tem. Sei disso porque uns colegas meus o ano passado tiveram de fazer um cliente de email em C e etstaram com o servidor de email do Gmail.

"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Posted

nao percebi essa parte de saber o ip pela resolucao de nomes :| n faço ideia  o k isso seja :S

Vais à consola ou à linha de comandos e escreves: nslookup "nome do endereço que queres saber o IP"

Ex: nslookup mail.google.com

Fiz isso e deu-me

Non-authoritative answer:

mail.google.com canonical name = googlemail.l.google.com.

Name:  googlemail.l.google.com

Address: 64.233.185.83

Name:  googlemail.l.google.com

Address: 64.233.185.19

Posted

😛 nao consigo meter o codigo a funcionar.. tenho o seguinte:

import java.io.PrintStream; 
import sun.net.smtp.SmtpClient; 
import java.util.*;

public class SendEmail
{ 

public static String mailServer = "smtp.gmail.com"; 


	public static void main(String[] args)
	{
		Scanner s = new Scanner(System.in);
		String dest, rem, subj, msg;


		rem="...@gmail.com";
		dest="...@hotmail.com";

		System.out.println("Remetente: "+rem);
		System.out.println("Destinatário: "+dest); 
		System.out.print("Assunto: "); subj=s.next();
		System.out.println();
		System.out.println("Mensagem: ");msg=s.next();


		try 
		{ 
			SmtpClient smtpclient = new SmtpClient(mailServer); 
			smtpclient.from(dest); 
			smtpclient.to(rem); 
			PrintStream printstream = smtpclient.startMessage(); 
			printstream.println("To: " + dest); 
			printstream.println("Subject: " + subj + "\n"); 
			printstream.println(msg); 
			smtpclient.closeServer(); 

			System.out.println("ENVIADO COM SUCESSO");
		} 
		catch(Exception e) 
		{ 
			System.out.println("FALHA AO ENVIAR!"); 
		} 		

	}

}  

falha aqui "smtpclient.from(dest); " .. nao consigo encontrar a classe smtpclient na API ...

Posted

Não creio que essa classe faça parte da API.

Podes sacar o JavaMail, que é uma API opcional para trabalhar com escrita de mensagens http://java.sun.com/products/javamail/downloads/index.html, e que inclui classes para enviar mails por smtp, tens o problema de ser implementação da sun e não parte do Java.

Ou podes usar a classe que tenho em anexo.

EDIT: Altera a extensão do ficheiro para ".java" eu coloquei como ".zip" para enganar o SMF que não me estava a deixar colocar ficheiros com extensão ".java". É apenas uma classe não é um zip!

Posted

obrigado, nao sabia isso do JavaMail... vou testar kd voltar a casa.. tks

onde e como instalo o javaMail ?

o .java k meteste em anexo fikou ilegivel, ou seja, fikou todo em 2 linhas de codigo, o k nao dá geito nenhum para analisar (se já estava assim peço desculpa 😛 )

Posted

Não sei para que queres mas não aconselho a usares implementações proprietárias. O teu programa deixa de ser multiplataforma. Se da JavaMail  API usares apenas métodos que não venham do package sun.* ou org.* então tudo bem. No caso de precisares apenas da classe para enviar por SMTP então podes usar apenas a classe que coloquei em anexo.

Posted

Nao sao packages proprietarias, pelo menos nao ja nao lol 😛

Essa classe ta no rt.jar que ja vem com o SDK 1.4.2 por isso.... Quanto ao problema de ser proprietario, nao me vao dizer que nao utilizam classes que vem com o SDK das quais nao tenham o codigo fonte, ja para nao falar que daqui a alguns meses vao ser todas open-source...

TaoOo se tiveres um IDE normal e tiveres o JDK (nao sei se so a JRE basta) instalado deve ser uma questao de fazer organizar imports ou kk coisa do genero.

Posted

Não sei para que queres mas não aconselho a usares implementações proprietárias. O teu programa deixa de ser multiplataforma.

Explica la isto Knitter???? entao se tiveres implementacoes proprietaria o teu programa ja nao e multiplataforma???? tss tss, eu sei que enganaste, mas que calinada 😛

outra coisa packages que comecem por org* sao normalmente opensource.

Posted

Calinada?! Não vejo onde. Todos os packages fora da API do Java tornam o java não multiplataforma, isto é uma regra geral. Nada garante que as novas funcionalidades sejam 100% Pure Java, até a própria sun avisa isso.

A única garantida de código multiplataforma é se usares código 100% Pure Java, nada te garante que uma implementação propriétaria o seja. Nada garante que a máquina virtual onde corras o código o consiga interpretar.

A questão dos packages org.* serem open source não é bem verdade. O que eu tenho mais são exemplos de packages que não são open source e têm nomenclatura org.* Por isso é que existem convenções de código e por isso é que também existem muitas pessoas que não as seguem.

Eu tenho o último jdk e também não consegui encontrar a classe. Mas posso ter falhado algures.

Nem todas as classes vão passar a ser open source, apenas as da API oficial. E sim, só uso classes da API oficial, ou que são 100% Pure Java, o que é o mesmo que dizer que são compostas por classes da API oficial. Tudo o que comesse por sun.* é automáticamente excluído.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.