使用javamail通过代理发送邮件

    xiaoxiao2024-01-08  159

    我们是没办法使用javamail通过一般的代理服务器发送邮件的,比如下面的代码是没有效果的:         Properties props  =  System.getProperties();         props.setProperty( " proxySet " , " true " );         props.setProperty( " ProxyHost " , " 192.168.155.1 " );         props.setProperty( " ProxyPort " , " 1080 " );         // 或者这样,也是没用         // Properties props = System.getProperties();         // props.setProperty("proxySet","true");         // props.setProperty("http.proxyHost","192.168.155.1");         // props.setProperty("http.proxyPort","808");         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  = "username"          final  String password  = "password"         Session session  =  Session.getDefaultInstance(props,                  new  Authenticator() {                      protected  javax.mail.PasswordAuthentication getPasswordAuthentication() {                          return   new  javax.mail.PasswordAuthentication(username,                                 password);                     }                 });         MimeMessage message  =   new  MimeMessage(session);                   不过可以通过socks网关来访问外网的email服务器,当然,前提是你安装了一个socks服务器。完整的使用代理发送邮件代码如下:      package  net.rubyeye.testjms; import  java.util.Date; import  java.util.Properties; import  java.security.Security; import  javax.mail.Address; import  javax.mail.Authenticator; import  javax.mail.Session; import  javax.mail.Transport; import  javax.mail.internet.InternetAddress; import  javax.mail.internet.MimeMessage; public   class  MailTest {      /**      *  @param  args       */      public   static   void  main(String[] args)  throws  Exception {          //  Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());          //  final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";          // 设置代理服务器         Properties props  =  System.getProperties();         props.setProperty( " proxySet " " true " );         props.setProperty( " socksProxyHost " " 192.168.155.1 " );         props.setProperty( " socksProxyPort " " 1081 " );         props.setProperty( " mail.smtp.host " " smtp.126.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.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  =   " username " ;          final  String password  =   " password " ;                   // 使用验证         Session session  =  Session.getDefaultInstance(props,                  new  Authenticator() {                      protected  javax.mail.PasswordAuthentication getPasswordAuthentication() {                          return   new  javax.mail.PasswordAuthentication(username,                                 password);                     }                 });         MimeMessage message  =   new  MimeMessage(session);         Address address  =   new  InternetAddress( " killme6115@126.com " );         Address toAaddress  =   new  InternetAddress( " killme6115@sina.com " );                  message.setFrom(address);         message.setRecipient(MimeMessage.RecipientType.TO, toAaddress);         message.setSubject( " 测试 " );         message.setText( " test " );         message.setSentDate( new  Date());                  Transport.send(message);         System.out.println( " 邮件发送! " );     } } 文章转自庄周梦蝶  ,原文发布时间5.17 相关资源:spring mail通过代理发送邮件
    最新回复(0)