Estou usando o seguinte método para enviar email:
[code]public void sendEmail() {
String from = “exemplo@exemplo.com.br”;
String to1 = “exemplo@exemplo.com.br”;
String to2 = “exemplo@exemplo.com.br”;
String to3 = “exemplo@exemplo.com.br”;
try {
SmtpClient client = new SmtpClient(“10.1.1.1”);
client.from(from);
client.to(to1);
client.to(to2);
client.to(to3);
PrintStream msg = client.startMessage();
msg.println(“to: “+ to1+”; “+to2+”; “+to3+ “;”);
msg.println(“Subject:Send Email JAVA”);
msg.print(”\r\n”);
msg.println(“Esse é um exemplo de um email java para mais de um destinatário\n”);
msg.println(“Teste”);
client.closeServer();
} catch (IOException e) {
System.out.println(“error” + e);
}
}[/code]
Mais quando compilo não dá erro mais aparece uns Warnig:
nit:
deps-jar:
Created dir: L:\CDV\build\classes
Compiling 2 source files to L:\CDV\build\classes
L:\CDV\src\cdv\Tela_Principal_Cliente.java:18: warning: sun.net.smtp.SmtpClient is Sun proprietary API and may be removed in a future release
import sun.net.smtp.SmtpClient;
L:\CDV\src\cdv\Tela_Principal_Cliente.java:2946: warning: sun.net.smtp.SmtpClient is Sun proprietary API and may be removed in a future release
SmtpClient client = new SmtpClient("10.1.1.1");
L:\CDV\src\cdv\Tela_Principal_Cliente.java:2946: warning: sun.net.smtp.SmtpClient is Sun proprietary API and may be removed in a future release
SmtpClient client = new SmtpClient("10.1.1.1");
Note: L:\CDV\src\cdv\Tela_Principal_Cliente.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
3 warnings
compile:
Building jar: L:\CDV\dist\CDV.jar
Copy libraries to L:\CDV\dist\lib.
To run this application from the command line without Ant, try:
java -jar "L:\CDV\dist\CDV.jar"
jar:
CONSTRUÍDO COM SUCESSO (tempo total: 2 segundos)
O que pode ser, e percebi outra coisa as vezes trava, quando vai enviar o email, o que pode ser???
Você está usando uma API, que apesar de estar presente no java, não foi desenvolvida com o intuito de ser disponibilizada para usuários comuns.
É isto que o warning está lhe dizendo - A API que você está utilizando é proprietária da SUN e poderá se tornar indisponível nas próximas versões do java sem qualquer aviso, haja vista que ela não tem como propósito ser utilizada por usuários comuns.
Acho que você deveria usar o javamail para enviar email.
Tem como vc me dar um idéia de como usar a classe javamail, ou passar um metodo parecido com esse, mais usando javamail?
T+++
Você poderia começar por este tutorial que está disponível aqui no GUJ mesmo.
Quando precisar de coisas mais avançadas, faça uma rápida pesquisa no google - tem muito material sobre isso disponível.
Tudo bem Vinicius?
Segue duas APIs de envio de e-mail que fiz uns exemplos.
API JavaMail: http://www.guj.com.br/posts/list/87637.java
API CommonsMail (Recomendo): http://www.guj.com.br/posts/list/104645.java
Qualquer dúvida posta ai.
[]'s,
Gabriel.
gabrielmassote,
É o seguinte cara, segui seu tuto http://www.guj.com.br/posts/list/104645.java, deu certo mais ele está mandando somente a ultima linha da msg, o que pode ser???
[code]public void enviar_email(){
SimpleEmail email = new SimpleEmail();
try {
email.setDebug(true);
email.setHostName("172.19.32.23");
//email.setAuthentication("seu_nome_de_usuario","sua_senha");
//email.setSSL(true);
email.addTo("VOGundim@serragrande.com.br"); //pode ser qualquer um email
email.setFrom("VOGundim@serragrande.com.br"); //aqui necessita ser o email que voce fara a autenticacao
email.setSubject("Teste");
email.setMsg("Mensagem Testando");
email.setMsg("Mensagem Testando 2");
email.send();
} catch (EmailException e) {
System.out.println(e.getMessage());
}
} [/code]
Estou usando servidor exchange, como tinha falado só chega a ultima linha
Mensagem Testando 2
a Mensagem Testando 1 não chega, o que pode ser?
Tudo bem Vinicius?
É que nesse caso você está sobrescrevendo a mensagem através do método setMsg() que toda hora que for chamado substitui o valor da mensagem.
Uma alternativa seria a seguinte:
String msg = new String();
msg.append("Mensagem 1");
msg.append("\nMensagem 2");
email.setMsg(msg);
Não fiz na prática aqui, mas é ± isso. Só faz o teste por ai para ver se não tem erro de compilação e etc.
[]'s.
Deu erro ai no append, o que poderia vir no lugar???
Valeuuu pela força!
Mals vinicius.
Segue o código certo agora : ).
Era StringBuffer no lugar de String.
StringBuffer msg = new StringBuffer();
msg.append("Mensagem 1");
msg.append("\nMensagem 2");
email.setMsg(msg);
[]'s.
Lembrem-se de utilizar StringBuilder no lugar de StringBuffer sempre que possível, haja vista que os métodos de StringBuffer são todos “synchronized”, o que, em geral, é dispensável.
No caso dele acho que não faz tanta diferença. Mas quando tiver muitas manipulações na String é valido.
Mas, bem lembrado rod. Valeu.
[]'s.
gabrielmassote,
Saiu em branco o corpo da msg, olhe o código, o que tá errado?
[code]public void enviar_email(){
SimpleEmail email = new SimpleEmail();
try {
StringBuffer msg = new StringBuffer();
email.setDebug(true);
email.setHostName("172.19.32.23");
//email.setAuthentication("seu_nome_de_usuario","sua_senha");
//email.setSSL(true);
email.addTo("VOGundim@serragrande.com.br"); //pode ser qualquer um email
email.setFrom("VOGundim@serragrande.com.br"); //aqui necessita ser o email que voce fara a autenticacao
email.setSubject("Teste");
msg.append("Mensagem Testando 1");
msg.append("Mensagem Testando 2");
email.send();
} catch (EmailException e) {
System.out.println(e.getMessage());
}
} [/code]
Valeu pela força…
Tudo bem vinicius?
Então, preste atenção aonde você está dando append, você está apenas adicionando conteúdo a variável “msg” e não ao e-mail. O que falta é você colocar email.setMsg(msg); e depois enviar com email.send();
tente aii!!
[]'s.
Olha verifiquei lá vi onde estava errado, mais é os seguinte quando chamo msg fica com um só sobre ele, tipo que não tem a variável criada, segue o código:
public void enviar_email(){
[code] SimpleEmail email = new SimpleEmail();
try {
StringBuilder msg = new StringBuilder();
email.setDebug(true);
email.setHostName("172.19.32.23");
//email.setAuthentication("seu_nome_de_usuario","sua_senha");
//email.setSSL(true);
email.addTo("VOGundim@serragrande.com.br"); //pode ser qualquer um email
email.setFrom("VOGundim@serragrande.com.br"); //aqui necessita ser o email que voce fara a autenticacao
email.setSubject("Teste");
msg.append("Mensagem Testando 1");
msg.append("Mensagem Testando 2");
email.setMsg(msg); //erro aqui no msg
email.send();
JOptionPane.showMessageDialog(null, "Email enviado com sucesso");
} catch (EmailException e) {
System.out.println(e.getMessage());
}
} [/code]
o que pode ser???
A única coisa que preciso agora é colocar mais de uma linha no corpo do email só isso, acho que não está muito difícil, estou tentando aqui se alguem tiver alguma dica, ficarei agradecido.
Obrigado pela atenção.
E ae vinicius,
O erro está ocorrendo pois o método .setMsg() só suporta String e StringBuilder possui uma “conversão” para String.
...
email.setMsg(msg.toString());
email.send();
...
Abraços!
Gabriel,
Valeu pelos posts cara ajudou pra caramba, fiz uma outra coisa que fuincionou sei que não é a melhor forma mais eu fiz e deu certo, segue o código abaixo:
[code]public void enviar_email(){
SimpleEmail email = new SimpleEmail();
try {
StringBuffer msg = new StringBuffer();
email.setDebug(true);
email.setHostName(“172.19.32.23”);
//email.setAuthentication(“seu_nome_de_usuario”,“sua_senha”);
//email.setSSL(true);
email.addTo(“VOGundim@serragrande.com.br”); //pode ser qualquer um email
email.setFrom(“VOGundim@serragrande.com.br”); //aqui necessita ser o email que voce fara a autenticacao
email.setSubject(“Teste”);
msg.append(“Mensagem Testando 1\n”);
msg.append(“Mensagem Testando 2”);
email.setMsg(""+msg); //aqui que estava dando o erro coloquei (""+msg), e deu certo kkk
email.send();
JOptionPane.showMessageDialog(null, “Email enviado com sucesso”);
} catch (EmailException e) {
System.out.println(e.getMessage());
}
} [/code]
Mais vou seguir o que vc me disse já testei e deu certo!!!
Valeuuu, obrigado pela atenção
Pode ser também hahah
Faz do outro jeito que fica mais elegante rs
Bom trabalho ai.
[]'s