`

使用javamail通过代理发送邮件

    博客分类:
  • 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(
"邮件发送!");

    }

}
分享到:
评论
2 楼 dennis_zane 2007-06-25  
有何不同呢?也是通过socks代理收取
1 楼 wenshijiao 2007-06-21  
请问怎样使用javamail通过代理收取邮件呢

相关推荐

    javamail通过imap协议收取邮件(Exchange2007)

    JavaMail是一种开源的Java库,它允许开发人员在Java应用程序中发送和接收电子邮件。IMAP(Internet Message Access Protocol)是一种标准的邮件访问协议,用于从邮件服务器检索邮件。Exchange 2007是微软的企业级...

    spring mail通过代理发送邮件

    在描述中提到的博客链接(由于实际链接无法访问,这里不进行详细分析),可能会详细解释如何配置和使用Spring Mail通过代理发送邮件的过程,包括代码示例和可能遇到的问题。通常,博客会涵盖异常处理、身份验证机制...

    socks5代理配置及发送邮件.rar

    文档详细描述,linux不通外网的情况下,通过在另一台通外网的服务器搭建socks5代理服务,不通外网的服务器通过socks5代理,成功向外网发送邮件的功能。

    JavaMail邮件开发详解

    接下来,我们将通过一个具体的例子来展示如何使用 JavaMail API 发送电子邮件。 **示例代码框架**: 1. **初始化Session对象**:创建一个 Session 对象,并设置必要的属性,如 SMTP 服务器地址。 2. **创建...

    完美JavaMail+redis完成邮件发送和邮箱认证

    JavaMail通过JavaMail API与邮件服务器通信,实现了邮件的创建、发送和接收。主要涉及以下组件: 1. **Message**:表示一封邮件,可以包含文本、HTML、附件等。 2. **Session**:是邮件会话对象,负责设置邮件...

    JavaMail(JAVA邮件服务) API详解

    1. **创建邮件**:使用 JavaMail API,开发人员可以通过简单的 API 调用来创建邮件对象,并设置邮件的主题、正文、发件人、收件人等信息。 2. **发送邮件**:通过配置 SMTP 服务器的参数,可以利用 JavaMail API ...

    JavaMail发邮件实例

    本程序是利用javaMail包编写的邮件代理程序,已经用exe4j打包成了二进制可执行文件,安装Java虚拟机后双击图标可直接运行,压缩包内附有源码,已经过测试,可放心使用。欢迎随时交流。 QQ:444080606 Email:运行...

    基于Javamail的邮件收发系统(系统+论文+开题报告+任务书+外文翻译+文献综述+答辩PPT).zip

    JavaMail API是SUN为Java开发者提供对电子邮件处理的延伸,能用于读取、编写和发送电子消息的包(标准扩展)。为管理电子邮件提供了统一的应用编程接口,它可以处理各种e-mail格式(包括IMAP、POP、SMTP以及MIME)和...

    JavaMail API详解.txt

    ### JavaMail API详解 #### 一、概述与背景 JavaMail API是用于处理电子邮件的一组...总之,JavaMail API是一个功能全面且易于使用的邮件处理工具,它极大地简化了在Java应用程序中实现邮件发送和接收功能的过程。

    JavaMail简易教程

    - **发送邮件**: JavaMail API提供了发送邮件的基础方法,包括设置邮件的发件人、收件人、主题、正文等内容。 - **接收邮件**: 支持接收来自服务器的新邮件,可以检查是否有未读邮件,并获取邮件的基本信息。 - **...

    JavaMail_API,JavaMail_API简介,JavaMail

    通过 JavaMail API,开发者可以通过自己的 SMTP 服务器发送邮件。SMTP 支持身份验证,因此可以避免成为开放转发器。 2. **POP3 (Post Office Protocol version 3)**:POP3 是一种用于接收邮件的协议。它为每个用户...

    JavaMail_API细节详细解析大全

    JavaMail API 是一套用于处理电子邮件的Java库,它允许开发者编写能够读取、撰写和发送电子邮箱的应用程序,类似于Eudora、Foxmail或MS Outlook Express等邮件用户代理(MUA)。这个API的设计目标是独立于具体的邮件...

    Javamail全包

    JavaMail 是一个开源的 Java API,它允许 Java 程序员通过标准的协议(如 SMTP、POP3、IMAP)发送和接收电子邮件。这个压缩包“Javamail全包”很可能包含了实现 JavaMail 功能所需的所有核心库,使得开发者能够轻松...

    Java开发的邮件代理服务器

    3. 发件:当用户通过代理服务器发送邮件时,服务器会使用SMTP向目标邮件服务器发送邮件。JavaMail API同样在发送邮件时起到关键作用,它允许设置邮件头信息(如发件人、收件人、主题等)、添加附件,以及选择适当的...

    JavaMail API详解

    JavaMail API是读取、撰写、发送电子信息的可选包。我们可用它来建立如Eudora、Foxmail、MS Outlook Express一般的邮件用户代理程序(Mail User Agent,简称MUA)。而不是像sendmail或者其它的邮件传输代理(Mail ...

    JavaMail API.pdf

    - SMTP(简单邮件传输协议):用于发送邮件,它定义了邮件如何从发件人的邮件客户端通过SMTP服务器传递到收件人的SMTP服务器。在JavaMail API中,SMTP支持身份验证,用户需要配置正确的SMTP服务器,JavaMail API并不...

    JavaMail_简易教程

    JavaMail程序通过SMTP服务器来发送邮件,该服务器负责将邮件转发给目标地址的SMTP服务器,最终用户可以通过POP或IMAP协议来获取这些邮件。 - **POP (Post Office Protocol)**:POP用于接收邮件,其最新版本是POP3。...

    Java Mail demo (仅发送邮件)

    在配置邮件发送时,有时我们需要通过邮件代理服务器来发送邮件,尤其是当你所在的网络环境有特定的限制时。Java Mail 提供了设置代理的能力,你可以在代码中指定代理服务器的地址和端口,以便顺利发送邮件。 下面是...

    JavaMail培训教材

    JavaMail集中用于开发邮件用户代理类型的程序,你可以使用JavaMail创建邮件、接收和发送邮件。JavaMail不是用于开发邮件服务器。

Global site tag (gtag.js) - Google Analytics