Aplicação p/ enviar e receber e-mail

:frowning: Estou com um trabalho de faculdade que é desenvolver um programa simples para enviar e receber e-mail usando JAVA, mas não posso usar o pacote javaMail. Alguém pode me ajudar??

Se você não pode usar o JavaMail e precisa implementar as coisas a partir do zero (zero zero zero zero zero, espero que sua nota seja 10 10 10 10 10 10 10), você precisa pegar as especificações:

POP3 - RFC 1939 (receber email) - http://www.rfc-editor.org/rfc/rfc1939.txt
SMTP - RFC 2821 (enviar email) - http://www.rfc-editor.org/rfc/rfc2821.txt
MIME - RFC 1521 (formato da mensagem) - http://www.rfc-editor.org/rfc/rfc1521.txt

As especificações são meio grandes e difíceis de ler, portanto é preciso lê-las com cuidado para ver o que é que deve ser implementado.

P.S. Obviamente você não vai ter tempo de fazer isso, por isso é que você precisa ver se tem uma alternativa melhor que tentar implementar parcialmente os padrões acima citados…

P.S.2 - Parece um bicho de sete cabeças, mas na verdade é bastante simples se você só quiser receber e enviar emails de texto corrido, em ASCII puro. Basta abrir um socket, enviar alguns headers em formato texto e com mensagens em um formato-padrão bastante simples (descrito na especificação acima!), receber a resposta, e pronto. Não é tão complicado assim.

[quote=“thingol”]Se você não pode usar o JavaMail e precisa implementar as coisas a partir do zero (zero zero zero zero zero, espero que sua nota seja 10 10 10 10 10 10 10), você precisa pegar as especificações:

POP3 - RFC 1939 (receber email) - http://www.rfc-editor.org/rfc/rfc1939.txt
SMTP - RFC 2821 (enviar email) - http://www.rfc-editor.org/rfc/rfc2821.txt
MIME - RFC 1521 (formato da mensagem) - http://www.rfc-editor.org/rfc/rfc1521.txt

As especificações são meio grandes e difíceis de ler, portanto é preciso lê-las com cuidado para ver o que é que deve ser implementado.

P.S. Obviamente você não vai ter tempo de fazer isso, por isso é que você precisa ver se tem uma alternativa melhor que tentar implementar parcialmente os padrões acima citados…

P.S.2 - Parece um bicho de sete cabeças, mas na verdade é bastante simples se você só quiser receber e enviar emails de texto corrido, em ASCII puro. Basta abrir um socket, enviar alguns headers em formato texto e com mensagens em um formato-padrão bastante simples (descrito na especificação acima!), receber a resposta, e pronto. Não é tão complicado assim.[/quote]

:slight_smile: Já havia baixado os RFCs e como sou iniciante… (iniciante mesmo) em JAVA, achei um pouco confusa a implementação mas já deu pra ver que realmente não é bicho de sete cabeças. Obrigado pela ajuda!

Uma coisa que lhe ajuda bastante é ter um servidor SMTP/POP na sua máquina, para você poder testar as mensagens e não incomodar ninguém (e você poder checar se a mensagem realmente foi aceita pelo servidor SMTP/POP…).

Já tive de escrever um enviador de email criptografado em C++ e ter o tal servidor SMTP/POP me ajudou bastante.

[quote=“thingol”]Uma coisa que lhe ajuda bastante é ter um servidor SMTP/POP na sua máquina, para você poder testar as mensagens e não incomodar ninguém (e você poder checar se a mensagem realmente foi aceita pelo servidor SMTP/POP…).

Já tive de escrever um enviador de email criptografado em C++ e ter o tal servidor SMTP/POP me ajudou bastante.[/quote]

:? Pergunta de leigo: como consigo o servidor SMTP/POP??? E obrigado pela força.

Estou usando o metodo Receive() para receber as respostas do servidor, mas ele me retorna uma linha de cada vez, ou seja, preciso repetir o Receive() várias vezes ou usar um for. Existe algum método que substitua o Receive() p/ receber todo o conteúdo da caixa postal do servidor??

[quote=Edu_jf]
:? Pergunta de leigo: como consigo o servidor SMTP/POP??? E obrigado pela força.[/quote]
Bom, não sei se o James ( http://jakarta.apache.org ) é fácil de usar. É que faz tempo que usei o tal servidor SMTP/POP, e era um programa em Windows com cópia de demonstração, nem lembro mais o nome.
A outra pergunta: acho que você tem de fazer um loop mesmo, para ir lendo as linhas.