Saudações…
Estou tentando criar uma aplicação que quando acontece uma determinada excessão com minha aplicação, a mesma envia uma e-mail.
Gostaria de saber se alguem tem ou sabe onde posso encontrar um tutorial que funcione??
Ou mesmo um exemplo simples…
grato
Tem esse tutorial aqui do GUJ mesmo:
Enviando emails com Java
http://www.guj.com.br/java.artigo.21.1.guj
não sei como inicio minha aplicação usando só esses codigos…
li sobre a API JavaMail…não sei se tem alguma coisa a ver…
Eh javamail mesmo. Quando der pau na aplicacao - que vai estar dentro de um try-catch -, vc usa um codigo como o do tutorial para enviar o email de notificacao.
Rafael
o o properties…onde eu incluo isso???
Em lugar algum. Voce pode configurar as opcoes dirtamente pelo codigo java.
Rafael
Rafael…
Sei que seria pedir de mais…mas vc podeiria usar um exemplo bem tosco inserindo esse exemplo do GUJ??
try {
// “de” e “para”!!
msg.setFrom(new InternetAddress(“nos@guj.com.br”));
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(“voces@guj.com.br”));
// nao esqueca da data!
// ou ira 31/12/1969 !!!
msg.setSentDate(new Date());
msg.setSubject("assunto da mensagem");
msg.setText("corpo da mensagem");
// evniando mensagem (tentando)
Transport.send(msg);
}
catch (AddressException e) {
// nunca deixe catches vazios!
}
catch (MessagingException e) {
// nunca deixe catches vazios!
}
properties
Properties p = new Properties();
p.put(“mail.host”, “smtp2.locaweb.com.br”);
Session session = Session.getInstance(p, null);
MimeMessage msg = new MimeMessage(session);
obrigado…
O tutorial tem exatamente o codigo necessario. Que exemplo a mais vc quer?
Rafael
estou postando o código…ainda não coloquei a condição
import java.util.Date;
import java.util.Properties;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import com.sun.corba.se.internal.iiop.messages.Message;
public class email {
public static void main(String args[]){
Properties p = new Properties();
p.put("mail.host", "smtp2.uol.com.br");
Session session = Session.getInstance(p, null);
MimeMessage msg = new MimeMessage(session);
try {
// "de" e "para"!!
msg.setFrom(new InternetAddress("nos@guj.com.br"));
msg.setRecipient(Message.RecipientType.TO, new InternetAddress("voces@guj.com.br"));
// nao esqueca da data!
// ou ira 31/12/1969 !!!
msg.setSentDate(new Date());
msg.setSubject("assunto da mensagem");
msg.setText("corpo da mensagem");
// evniando mensagem (tentando)
Transport.send(msg);
}
catch (AddressException e) {
// nunca deixe catches vazios!
}
catch (MessagingException e) {
// nunca deixe catches vazios!
}
}
}
Pq ele esta dando erro nesta linha??
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(“voces@guj.com.br”));
a aplicação seria se caso não recebesse uma vairalvel de valor "00"ele me mandaria um e-mail…
OBS…sou novato no assunto …
Qual erro que acontece? eh muito importante vc fornecer esse tipo de informacao.
Possiveis causas podem ser que vc nao importou a classe ou versao do javamail nao compativel.
Rafael
ele nem compila por que esta dando um erro na seguinte linha:
msg.setRecipient([b]Message.RecipientType.TO[/b], new InternetAddress("voces@guj.com.br"));
dando o erro de compilação:
java.lang.Error: Unresolved compilation problem:
Message.RecipientType cannot be resolved
at email.main(email.java:27)
Exception in thread “main”
Voce esta usando o import errado. O
import com.sun.corba.se.internal.iiop.messages.Message;
Nao deve ser utilizado, mas sim o Message do javax.mail
Rafael
Rafael…
Consegui eliminar os erros…
só estou com mais uma duvida…
Para enviar um e-mail preciso me autenticar no SMTP certo??
creio que seja nesta linha:
Properties p = new Properties();
p.put("mail.host", "smtp2.uol.com.br");
o que devo colocar no campo “mail.host”?
e printando o seguinte erro:
java.lang.NoClassDefFoundError: javax/activation/DataSource
at email.main(email.java:22)
Exception in thread "main"
Por favor, quando escrever a mensagem, nao desmarque a opcao “Desabilitar formatação BB”.
Se o seu servidor de emails requer autenticacao, entao sim. Veja esta mensagem para aprender como autenticar:
http://www.guj.com.br/posts/list/0/10197.java#53246
( Note que eh a segunda mensagem do topico ).
[quote=rockstorm]
creio que seja nesta linha:
Properties p = new Properties();
p.put("mail.host", "smtp2.uol.com.br");
o que devo colocar no campo “mail.host”?[/quote]
“mail.host” eh uma string especial, e vc NAO deve mudar ela. O que vc deve mudar eh o valor. No seu caso, o valor eh “smtp2.uol.com.br”. Se esse for o servidor que vc quer usar, entao o seu codigo esta correto.
Rafael
[quote=rockstorm]e printando o seguinte erro:
[code]
java.lang.NoClassDefFoundError: javax/activation/DataSource
at email.main(email.java:22)
Exception in thread “main”
[/code][/quote]
Voce tem que ter o activation.jar. Pegue em http://java.sun.com/products/javabeans/glasgow/jaf.html
Rafael