<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    莊周夢蝶

    生活、程序、未來
       :: 首頁 ::  ::  :: 聚合  :: 管理

    使用javamail通過代理發送郵件

    Posted on 2007-03-04 11:50 dennis 閱讀(5189) 評論(1)  編輯  收藏 所屬分類: java
    ??? 我們是沒辦法使用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(
    "郵件發送!");

    ????}

    }


    評論

    # re: 使用javamail通過代理發送郵件  回復  更多評論   

    2013-07-11 17:43 by 雷博弈
    AVOS-dennis 您好,請教一個關于 通過代理服務器來發送郵件 的問題,我這邊的環境是內部網不能訪問外部網絡,通過CCproxy來訪問,發送郵件的程序在一臺linux 主機上,能訪問 代理主機,無法訪問外網,通過上面的程序沒法發送郵件,報“ Unknown SMTP host: smtp.163.com;”。 把程序移植到CCproxy 主機上(可以訪問外網)代碼可用,是否意味著通過代理發送郵件也需要程序所屬的主機能訪問smpt服務?
    主站蜘蛛池模板: 亚洲国产激情在线一区| 久久精品国产亚洲香蕉| 亚洲精品国产综合久久久久紧| 99无码人妻一区二区三区免费| 亚洲成a人片在线观看播放| 18禁免费无码无遮挡不卡网站| 亚洲精品美女在线观看播放| 国产成人免费高清激情明星| 亚洲熟妇无码久久精品| A在线观看免费网站大全| 亚洲午夜精品久久久久久app| 亚洲欧美黑人猛交群| 小草在线看片免费人成视久网| 亚洲一级二级三级不卡| 黄色成人免费网站| 亚洲成av人在线观看网站| 免费大黄网站在线观看| 中国国语毛片免费观看视频| 久久久久久亚洲精品中文字幕| 色片在线免费观看| 豆国产96在线|亚洲| 亚洲午夜福利在线观看| 18观看免费永久视频| 亚洲国产精品无码久久九九大片| 亚洲成?v人片天堂网无码| 国产特黄特色的大片观看免费视频| 亚洲天天做日日做天天看| 精品久久久久久久免费人妻| 色老头综合免费视频| 亚洲成av人片不卡无码| 亚洲精品无码永久在线观看 | 97在线免费观看视频| 4480yy私人影院亚洲| 国产午夜鲁丝片AV无码免费| 国产日韩一区二区三免费高清| 亚洲国产日韩女人aaaaaa毛片在线| 免费久久精品国产片香蕉| 99久热只有精品视频免费看| 久久亚洲中文字幕无码| 亚洲一区二区三区首页| 亚洲国产精品嫩草影院久久|