Guest User

Untitled

a guest
May 27th, 2018
421
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.30 KB | None | 0 0
  1.  
  2. package emailsender;
  3.  
  4. import java.util.Properties;
  5. import javax.mail.Message;
  6. import javax.mail.Session;
  7. import javax.mail.Transport;
  8. import javax.mail.internet.InternetAddress;
  9. import javax.mail.internet.MimeMessage;
  10. import javax.mail.Authenticator;
  11. import javax.mail.PasswordAuthentication;
  12.  
  13.  
  14. //clase que retorna uma autenticacao para ser enviada e verificada pelo servidor smtp
  15. public class SendMail {
  16.  
  17. private String mailSMTPServer;
  18. private String mailSMTPServerPort;
  19. private String mailSMTPUser;
  20. private String mailSMTPUserPassword;
  21.  
  22. /*
  23. * quando instanciar um Objeto ja sera atribuido o servidor SMTP do GMAIL
  24. * e a porta usada por ele
  25. */
  26. SendMail(String gmailUser, String gmailUserPassword) { //Para o GMAIL
  27. this("smtp.gmail.com","465", gmailUser, gmailUserPassword);
  28. }
  29.  
  30. /*
  31. * caso queira mudar o servidor e a porta, so enviar para o contrutor
  32. * os valor como string
  33. */
  34. SendMail(String mailSMTPServer, String mailSMTPServerPort, String mailSMTPUser, String mailSMTPUserPassword ) { //Para outro Servidor
  35. this.mailSMTPServer = mailSMTPServer;
  36. this.mailSMTPServerPort = mailSMTPServerPort;
  37. this.mailSMTPUser = mailSMTPUser;
  38. this.mailSMTPUserPassword = mailSMTPUserPassword;
  39.  
  40. }
  41.  
  42.  
  43.  
  44. public void sendMail(String from, String to, String subject, String message) {
  45.  
  46. Properties props = new Properties();
  47.  
  48. // quem estiver utilizando um SERVIDOR PROXY descomente essa parte e atribua as propriedades do SERVIDOR PROXY utilizado
  49. /*
  50. props.setProperty("proxySet","true");
  51. props.setProperty("socksProxyHost","192.168.155.1"); // IP do Servidor Proxy
  52. props.setProperty("socksProxyPort","1080"); // Porta do servidor Proxy
  53. */
  54.  
  55. props.put("mail.transport.protocol", "smtp"); //define protocolo de envio como SMTP
  56. props.put("mail.smtp.starttls.enable","true");
  57. props.put("mail.smtp.host", mailSMTPServer); //server SMTP do GMAIL
  58. props.put("mail.smtp.auth", "true"); //ativa autenticacao
  59. props.put("mail.smtp.user", from); //usuario ou seja, a conta que esta enviando o email (tem que ser do GMAIL)
  60. props.put("mail.debug", "true");
  61. props.put("mail.smtp.port", mailSMTPServerPort); //porta
  62. props.put("mail.smtp.socketFactory.port", mailSMTPServerPort); //mesma porta para o socket
  63. props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
  64. props.put("mail.smtp.socketFactory.fallback", "false");
  65.  
  66. //Cria um autenticador que sera usado a seguir
  67. SimpleAuth auth = null;
  68. auth = new SimpleAuth (from, this.mailSMTPUserPassword);
  69.  
  70. //Session - objeto que ira realizar a conexão com o servidor
  71. /*Como há necessidade de autenticação é criada uma autenticacao que
  72. * é responsavel por solicitar e retornar o usuário e senha para
  73. * autenticação */
  74. Session session = Session.getDefaultInstance(props, auth);
  75. session.setDebug(true); //Habilita o LOG das ações executadas durante o envio do email
  76.  
  77. //Objeto que contém a mensagem
  78. Message msg = new MimeMessage(session);
  79.  
  80. try {
  81. //Setando o destinatário
  82. msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
  83. //Setando a origem do email
  84. msg.setFrom(new InternetAddress(from));
  85. //Setando o assunto
  86. msg.setSubject(subject);
  87. //Setando o conteúdo/corpo do email
  88. msg.setContent(message,"text/plain");
  89.  
  90. }
  91. catch (Exception e) {
  92. System.out.println(">> Erro: Completar Mensagem");
  93. e.printStackTrace();
  94. }
  95.  
  96. //Objeto encarregado de enviar os dados para o email
  97. Transport tr;
  98. try {
  99. tr = session.getTransport("smtp"); //define smtp para transporte
  100. /*
  101. * 1 - define o servidor smtp
  102. * 2 - seu nome de usuario do gmail
  103. * 3 - sua senha do gmail
  104. */
  105. //tr.connect(mailSMTPServer, , "iJ_5(39%Ml4");
  106. tr.connect(mailSMTPServer, mailSMTPUser, mailSMTPUserPassword);
  107. msg.saveChanges(); // don't forget this
  108. //envio da mensagem
  109. tr.sendMessage(msg, msg.getAllRecipients());
  110. tr.close();
  111. }
  112. catch (Exception e) {
  113. // TODO Auto-generated catch block
  114. System.out.println(">> Erro: Envio Mensagem");
  115. e.printStackTrace();
  116. }
  117.  
  118. }
  119.  
  120.  
  121. public static void main(String[] args) {
  122. SendMail s = new SendMail("username", "senha");
  123. s.sendMail("orgem@origem.com",
  124. "destino@destino.com",
  125. "Sera que funciona",
  126. "E aih, cara, confio que esse email vai funcionar");
  127. }
  128. }
  129.  
  130. class SimpleAuth extends Authenticator {
  131. public String username = null;
  132. public String password = null;
  133.  
  134.  
  135. public SimpleAuth(String user, String pwd) {
  136. username = user;
  137. password = pwd;
  138. }
  139.  
  140. protected PasswordAuthentication getPasswordAuthentication() {
  141. return new PasswordAuthentication (username,password);
  142. }
  143. }
Add Comment
Please, Sign In to add comment