public class GmailMailer {
// Host do Gmail
private String SMTP_HOST_NAME;
// Login do usuário
private String SMTP_AUTH_USER;
// Senha do usuário
private String SMTP_AUTH_PWD;
// E-mail do remetente
private String emailFromAddress;
// Título do e-mail
private String emailSubjectTxt;
// Conteúdo do e-mail
private String emailMsgTxt;
// E-mails dos destinatários
private String[] emailList;
public GmailMailer() {
SMTP_HOST_NAME = "smtp.gmail.com";
SMTP_AUTH_USER = "[email removido]";
SMTP_AUTH_PWD = "xxxxx";
}
public void enviarEmails() {
try {
String[] listaEmails = {"[email removido]"};
sendEmail("[email removido]", listaEmails, "Teste de envio de email", "Isso é um teste");
} catch (Exception ex) {
Logger.getLogger(GmailMailer.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void sendEmail(String fromAddress, String[] toAddress, String subjectTxt, String messageTxt) throws Exception {
emailFromAddress = fromAddress;
emailList = toAddress;
emailSubjectTxt = subjectTxt;
emailMsgTxt = messageTxt;
boolean debug = false;
java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
// Configurando o endereço SMTP do host
Properties props = new Properties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", SMTP_HOST_NAME);
props.put("mail.smtp.auth", "true");
// Caso o e-mail precise de autenticação
Authenticator auth = new SMTPAuthenticator();
Session session = Session.getDefaultInstance(props, auth);
session.setDebug(debug);
// Criando a mensagem
Message msg = new MimeMessage(session);
// Adicionando o e-mail do remetente
InternetAddress addressFrom = new InternetAddress(emailFromAddress);
msg.setFrom(addressFrom);
// Adicionando os e-mails dos destinatários
InternetAddress[] addressTo = new InternetAddress[emailList.length];
for (int i = 0; i < emailList.length; i++) {
addressTo[i] = new InternetAddress(emailList[i]);
}
msg.setRecipients(Message.RecipientType.TO, addressTo);
// Adicionando o título do e-mail
msg.setSubject(emailSubjectTxt);
// Adicionando o conteúdo do e-mail
msg.setContent(emailMsgTxt, "text/plain");
Transport.send(msg);
}
/**
* Autentica o usuário quando o servidor SMTP requisita
*/
private class SMTPAuthenticator extends javax.mail.Authenticator {
public PasswordAuthentication getPasswordAuthentication() {
String username = SMTP_AUTH_USER;
String password = SMTP_AUTH_PWD;
return new PasswordAuthentication(username, password);
}
}
}
Enviar email proxy
J
Boa tarde, pessoal estou a alguns dias tentando enviar email atravéz de uma App WEB, porém não funcionava...
então decidi testar em casa e FUNCIONOU, ou seja, preciso setar o proxy e a porta, pois acho que é isso que esta
me empedindo de enviar o email.
Como que faço para inserir o proxy e porta nessa classe abaixo?;
Obrigado.
3 Respostas
CAra para o proxy nao sei te dizer… mas para a porta faça o seguinte:
props.setProperty("mail.smtp.port", "25");
[]'s
R
Para fazer a autenticação via proxy da uma olhda na classe ProxyAutenticator que criei, utilizei ela pra outra finalidade (Gmaps), mas acredito que servirá pra você também.
URL url = new URL("http://maps.google.com/maps/geo?q=" + query
+ "&output=json&oe=utf8&sensor=false");
Authenticator
.setDefault(new ProxyAuthenticator("user", "password"));
SocketAddress proxySocket = new InetSocketAddress("192.124.112.144",
3128);
Proxy proxy = new Proxy(Type.HTTP, proxySocket);
HttpURLConnection conn = (HttpURLConnection) url.openConnection(proxy);
conn.connect();
Classe ProxyAutenticator
static class ProxyAuthenticator extends Authenticator {
private String user, password;
public ProxyAuthenticator(String user, String password) {
this.user = user;
this.password = password;
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, password.toCharArray());
}
}
J
não consegui…teria outra maneira de adaptar minha classe acima? obrigado
Criado 14 de fevereiro de 2011
Ultima resposta 16 de fev. de 2011
Respostas 3
Participantes 3