Gostaria de saber como faço para acessar uma determinada pasta no meu servidor de e-mail…hoje eu estou enviando e-mail de uma aplicação e gostaria de poder visualizar os e-mails enviados…
Estou estudando o protocolo IMAP e acho que ele faz esta função…estou correto??
Javamal - IMAP visualizando e-mails enviados
9 Respostas
Também procuro a mesma coisa, mas não achei nada a respeito ainda.
Bom, hoje eu já ler um e-mail de uma determinada pasta. Mas meu problema é o seguinte.
Quando eu envio um e-mail, automaticamente uma copia precisaria ir para a pasta de “Emails Enviados”. Só que isso não acontece.
Quando eu envio pelo webmail a copia é colocada na pasta, mas quando faço isso pela aplicação, o e-mail não vai para a pasta de “Enviados”
Fez isso via IMAP?
Não tem como copiar a mensagem via a api?
Sim eu fiz via IMAP.
Sobre copiar a mensagem foi uma ideia que tive mas parei na seguinte questão:
Copiar de onde para onde??
Sendo que quando eu envio o e-mail eu não tenho o e-mail arquivado em lugar algum…como irei fazer uma copia deste e-mail enviado e coloca-lo em uma determidada pasta…???
Este é o meu problema…rss
Consegui, BARALHOOOO!!!
Então, fiz um teste que funcionou.
Session session = Session.getDefaultInstance(mailConfigProperties, null);
Store store = session.getStore("imap");
store.connect(host, user, pass);
Folder folder = store.getDefaultFolder();
// cria uma MSG e atribui os valores
Message msg = new SMTPMessage(session);
msg.setContent(message, MailContentType.HTML.getType());
msg.setSentDate(new Date());
msg.setSubject(subject);
msg.setText(message);
msg.saveChanges();
// grava a msg no INBOX
folder = folder.getFolder("INBOX");
folder.open(Folder.READ_WRITE);
folder.appendMessages(new Message[] { msg });
folder.close(true);
opa…
Voce acredita que dê para ao invés de salvar na INBOX ele salvar na SENT???
Qualdo vc esta salvando a mensagem, vc tb esta enviando a mesma certo???
Este cara apenas salva na caixa, mas não envio… O envio eu faço via SMTP mesmo (omiti o código).
Se você souber o nome, pode gravar em qualquer caixa de e-mail.
Funcionou!!! Consegui enviar e salvar na pasta de “Enviadas…”
Valeu!!
Bom dia cara,
Deixa eu ti perguntar, vcs conseguiram enviar e-mail via MS Exchange passando autenticação de usuario e senha? Eu tenho uma classe utilizando javax.mail mas não consigo enviar quando o e-mail passa autenticação, ele não me gera mensagem de erro porem não envia a mensagem. Aqui na empresa que eu trabalho nos filtramos essas mensagem e percebemos que eu só consigo enviar a mensagem quando é para o mesmo domínio. E tambem percebi que o cabeçario do e-mail esta bem diferente do enviado pelo Exchange, será que estou fazendo algo errado? Olha minha classe abaixo.
public void enviar() throws Exception{
Properties props = System.getProperties();
props.put("mail.smtp.host", (Global.isEmpty(SMTPServer) ? "localhost" : SMTPServer));
javax.mail.Session session = null;
if (!Global.isEmpty(usuario) && !Global.isEmpty(senha)){
props.put("mail.smtp.auth", "true");
javax.mail.Authenticator auth = auth = new javax.mail.Authenticator() {
@Override
public javax.mail.PasswordAuthentication getPasswordAuthentication() {
return new javax.mail.PasswordAuthentication(usuario, senha);
}
};
session = javax.mail.Session.getInstance(props, auth);
}
else{
props.put("mail.smtp.auth", "false");
session = javax.mail.Session.getDefaultInstance(props);
}
javax.mail.Message message = new javax.mail.internet.MimeMessage(session);
javax.mail.internet.InternetAddress iaFrom = new javax.mail.internet.InternetAddress(from);
javax.mail.internet.InternetAddress iaTo[] = javax.mail.internet.InternetAddress.parse(to);
message.setFrom(iaFrom);
message.setRecipients(javax.mail.Message.RecipientType.TO,iaTo);
message.setSubject(subject);
message.setSentDate(new java.util.Date());
//Define uma mensagem de varias partes
Multipart multipart = new MimeMultipart();
//define o corpo da mensagem
MimeBodyPart messageBodyPart = new MimeBodyPart();
//define o texto da mensagem
messageBodyPart.setText(text);
//insere o corpo da mensagem
multipart.addBodyPart(messageBodyPart);
if (!Global.isEmpty(arquivo)){
String arqs [] = arquivo.split(";");
for(int i=0;i<arqs.length;i++){
if(arqs[i].length() != 0){
//define o arquivo a ser anexado
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(arqs[i]);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(arqs[i]);
//insere o arquivo anexado
multipart.addBodyPart(messageBodyPart);
}
}
}
//message.setContent(multipart, (Global.isEmpty(content) ? "text/plain" : content));
message.setContent(multipart);
javax.mail.Transport.send(message);
}
Se alguem souber agradeço a ajuda !!! >