使用javamail通过代理发送邮件-阿里云开发者社区

开发者社区> boxti> 正文

使用javamail通过代理发送邮件

简介:
+关注继续查看
  我们是没办法使用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);
        dot.gifdot.gifdot.gifdot.gifdot.gifdot.gifdot.gifdot.gif
 
   
    不过可以通过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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux SendMail 使用外部SMTP服务发送邮件
这个今天刚好用到,就测试了一下。OK了。。因为,PYTHON模块是可以,但SHELL脚本用SHELL发,还是合拍点。。   http://my.oschina.net/duangr/blog/183162   1.
1202 0
phpmailer中文语言文件及使用
 phpmailer是一个国际化的软件,它也支持中文的出错提示。         phpmailer的语言文件放在language文件夹下,以phpmailer.lang- 语言类型.php命名。
527 0
java实现发送邮件功能
项目中实现发送邮件功能,先书写一个小Demo,记录如下:   POM.XML中导入依赖   javax.mail mail 1.
1200 0
使用WCF实现SOA面向服务编程——使用AJAX+WCF服务“.NET技术”页面开发
  在上一篇讲到,如果将BLL层的每一个类都转化为*.svc,这是一个不实在的想法。它会使服务变化复杂,难于管理。   这时候,我们第一时间想到的是23个简单开发模式中的Factory,在这里,Factory正好派上用场。
869 0
+关注
boxti
12535
10037
文章
1327
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载