使用javamail&发送邮件代理

时间:2016-05-18 16:46:56

标签: proxy javamail

打着招呼

如何使用代理网络发送电子邮件( javamail )?

示例或文档? 我试过这个例子,但它给我一个例外:

线程中的异常" main" com.sun.mail.util.MailConnectException:无法连接到主机,端口:smtp.gmail.com,587;超时-1;   嵌套异常是:     java.net.SocketException:无法连接到SOCKS代理:41.229.xxx.xxx

package email;

import java.security.Security;
   import java.util.Date;
   import java.util.Properties;
   import javax.mail.Authenticator;
   import javax.mail.Message;
   import javax.mail.MessagingException;
   import javax.mail.PasswordAuthentication;
   import javax.mail.Session;
   import javax.mail.Transport;
   import javax.mail.internet.AddressException;
   import javax.mail.internet.InternetAddress;
   import javax.mail.internet.MimeMessage;


   public class GmailSender {

      public static void main(String[] args) throws AddressException, MessagingException {


         Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
         final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
      // Get a Properties object
         Properties props = System.getProperties();
        props.setProperty("proxySet","true");
         props.setProperty("socksProxyHost","41.229.xxx.xxx");

         props.setProperty("socksProxyPort","1080");
         props.setProperty("mail.smtp.host", "smtp.gmail.com");
         props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
         props.setProperty("mail.smtp.socketFactory.fallback", "false");
//         props.setProperty("mail.smtp.port", "465");
          props.setProperty("mail.smtp.port", "587");
         props.setProperty("mail.smtp.socketFactory.port", "587");
//         props.setProperty("mail.smtp.socketFactory.port", "465");
         props.put("mail.smtp.auth", "true");
         props.put("mail.debug", "true");
         props.put("mail.store.protocol", "pop3");
         props.put("mail.transport.protocol", "smtp");
         final String username = "dellegimehdi@gmail.com";
         final String password = "xxxxxxxxx";
         Session session = Session.getDefaultInstance(props, 
                              new Authenticator(){
                                 protected PasswordAuthentication getPasswordAuthentication() {
                                    return new PasswordAuthentication(username, password);
                                 }});

       // -- Create a new message --
         Message msg = new MimeMessage(session);

      // -- Set the FROM and TO fields --
         msg.setFrom(new InternetAddress("dellegimehdi@gmail.com"));
         msg.setRecipients(Message.RecipientType.TO, 
                          InternetAddress.parse("mehdidellegi@hotmail.fr",false));
         msg.setSubject("Hello");
         msg.setText("How are you");
         msg.setSentDate(new Date());
         Transport.send(msg);
         System.out.println("Message sent.");
      }
   }

0 个答案:

没有答案