publicvoidsendEmail(){Stringfrom="[email removido]";Stringto1="[email removido]";Stringto2="[email removido]";Stringto3="[email removido]";try{SmtpClientclient=newSmtpClient("10.1.1.1");client.from(from);client.to(to1);client.to(to2);client.to(to3);PrintStreammsg=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(IOExceptione){System.out.println("error"+e);}}
Mais quando compilo não dá erro mais aparece uns Warnig:
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.
viniciusgundim
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+++
rodrigo.bossini
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.
gabrielmassote
Tudo bem Vinicius?
Segue duas APIs de envio de e-mail que fiz uns exemplos.
publicvoidenviar_email(){SimpleEmailemail=newSimpleEmail();try{email.setDebug(true);email.setHostName("172.19.32.23");//email.setAuthentication("seu_nome_de_usuario","sua_senha"); //email.setSSL(true); email.addTo("[email removido]");//pode ser qualquer um email email.setFrom("[email removido]");//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(EmailExceptione){System.out.println(e.getMessage());}}
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?
gabrielmassote
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.
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.
gabrielmassote
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.
viniciusgundim
gabrielmassote,
Saiu em branco o corpo da msg, olhe o código, o que tá errado?
publicvoidenviar_email(){SimpleEmailemail=newSimpleEmail();try{StringBuffermsg=newStringBuffer();email.setDebug(true);email.setHostName("172.19.32.23");//email.setAuthentication("seu_nome_de_usuario","sua_senha"); //email.setSSL(true); email.addTo("[email removido]");//pode ser qualquer um email email.setFrom("[email removido]");//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(EmailExceptione){System.out.println(e.getMessage());}}
Valeu pela força...
gabrielmassote
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.
viniciusgundim
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(){
SimpleEmailemail=newSimpleEmail();try{StringBuildermsg=newStringBuilder();email.setDebug(true);email.setHostName("172.19.32.23");//email.setAuthentication("seu_nome_de_usuario","sua_senha"); //email.setSSL(true); email.addTo("[email removido]");//pode ser qualquer um email email.setFrom("[email removido]");//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 msgemail.send();JOptionPane.showMessageDialog(null,"Email enviado com sucesso");}catch(EmailExceptione){System.out.println(e.getMessage());}}
o que pode ser???
viniciusgundim
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.
gabrielmassote
E ae vinicius,
O erro está ocorrendo pois o método .setMsg() só suporta String e StringBuilder possui uma “conversão” para String.
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:
publicvoidenviar_email(){SimpleEmailemail=newSimpleEmail();try{StringBuffermsg=newStringBuffer();email.setDebug(true);email.setHostName("172.19.32.23");//email.setAuthentication("seu_nome_de_usuario","sua_senha"); //email.setSSL(true); email.addTo("[email removido]");//pode ser qualquer um email email.setFrom("[email removido]");//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 kkkemail.send();JOptionPane.showMessageDialog(null,"Email enviado com sucesso");}catch(EmailExceptione){System.out.println(e.getMessage());}}
Mais vou seguir o que vc me disse já testei e deu certo!!!!
Valeuuu, obrigado pela atenção