`
dreamoftch
  • 浏览: 497901 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

apache发送邮件和java自身发送邮件对比

阅读更多
import java.net.URL;  
import java.util.Properties;  
  
import javax.activation.DataHandler;  
import javax.activation.FileDataSource;  
import javax.mail.Authenticator;  
import javax.mail.BodyPart;  
import javax.mail.Message;  
import javax.mail.MessagingException;  
import javax.mail.Multipart;  
import javax.mail.PasswordAuthentication;  
import javax.mail.Session;  
import javax.mail.Transport;  
import javax.mail.internet.InternetAddress;  
import javax.mail.internet.MimeBodyPart;  
import javax.mail.internet.MimeMessage;  
import javax.mail.internet.MimeMultipart;  
  
import org.apache.commons.mail.DefaultAuthenticator;  
import org.apache.commons.mail.Email;  
import org.apache.commons.mail.EmailAttachment;  
import org.apache.commons.mail.EmailException;  
import org.apache.commons.mail.HtmlEmail;  
import org.apache.commons.mail.MultiPartEmail;  
import org.apache.commons.mail.SimpleEmail;  
import org.junit.After;  
import org.junit.Before;  
import org.junit.Test;  
  
public class JavaMail {  
    
      
    @Test  
    public void defaultSendMail() throws Exception {  
        String host = "smtp.sina.com";// "smtp.gmail.com"   
        String port = "25"; //"465"  
        Properties props = new Properties();  
        props.setProperty("mail.smtp.host", host);   
        props.setProperty("mail.smtp.port", port);  
        props.setProperty("mail.smtp.auth", "true");  
        props.setProperty("mail.smtp.ssl.enable", "false");//"true"  
        props.setProperty("mail.smtp.connectiontimeout", "5000");  
          
        final String user = "***@sina.com";  //"***@gmail.com"  
        final String pwd = "***";  
        Session session = Session.getDefaultInstance(props, new Authenticator() {  
            @Override  
            protected PasswordAuthentication getPasswordAuthentication() {  
                //登录用户名密码  
                return new PasswordAuthentication(user,pwd);  
            }  
        });  
        session.setDebug(true);  
        Transport transport = session.getTransport("smtp");//"smtps"  
        transport.connect(host,user,pwd);   
        //消息  
        MimeMessage message = new MimeMessage(session);  
          
        setMailContent(message);//。。。。。。。。。。。。。。。。。。  
          
        message.setSubject("邮件标题");  
        //消息发送者接收者设置  
        //message.setFrom(new InternetAddress(user,"发件人名称"));   
        message.addRecipients(Message.RecipientType.TO,new InternetAddress[]{  
                new InternetAddress("to1@163.com","to1昵称"),  
                new InternetAddress("to2@163.com","to2昵称")  
        });  
        message.saveChanges();  
          
        //发送  
        transport.send(message);  
        //Transport.send(message);  
          
        transport.close();    
          
    }  
      
    //设定邮件内容  
    private void setMailContent(MimeMessage message) throws MessagingException {  
        //方法一:只有文本邮件  
        //message.setContent("邮件内容..", "text/plain");//纯文本内容  
        //方法二:添加附件的邮件  
        Multipart part = new MimeMultipart();  
          
        BodyPart bodypart1 = new MimeBodyPart();  
        bodypart1.setText("邮件内容");        
        part.addBodyPart(bodypart1 );  
          
        BodyPart bodypart2 = new MimeBodyPart();  
        bodypart2.setFileName("fileName");  
        bodypart2.setDataHandler(new DataHandler(new FileDataSource("f:\\ok.txt")));  
        part.addBodyPart(bodypart2);  
          
        message.setContent(part);  
    }  
  
    @Test  
    public void apacheSendMail() throws Exception {  
        SimpleEmail email = new SimpleEmail();  
        email.setHostName("smtp.gmail.com");  
        email.setSSL(true);  
        email.setSmtpPort(465);  
//      email.setSslSmtpPort("465");  
        email.setTLS(true);//gmail  
        email.setAuthenticator(new DefaultAuthenticator("h***@gmail.com", "***"));  
        email.setFrom("h***@gmail.com");  
        email.setSubject("TestCommonMail");  
        email.setCharset("gbk");  
        //文本邮件  
        email.setMsg("This is a test mail ... :-)");  
          
        email.addTo("**to@qq.com");  
        email.send();   
    }  
  
    @Test  
    public void apacheSendHtmlMail() throws Exception {  
        HtmlEmail email = new HtmlEmail();  
        email.setHostName("smtp.gmail.com");  
        email.setSSL(true);  
        email.setSmtpPort(465);   
        email.setTLS(true);//gmail  
        email.setAuthenticator(new DefaultAuthenticator("h***@gmail.com", "***"));  
        email.setFrom("h***@gmail.com");  
        email.addTo("**to@qq.com");  
        email.setSubject("TestCommonMail");  
        email.setCharset("gbk");  
        //html邮件  
        String cid = email.embed(new URL("http://www.google.com.tw/intl/en_com/images/srpr/logo1w.png"), "google logo");  
        email.setHtmlMsg("<html>The logo - <img src='cid:"+cid+"'></html>");  
          
        email.send();   
    }   
      
      
    @Test  
    public void apacheSendAttachMail() throws Exception {  
        MultiPartEmail email = new MultiPartEmail();  
        email.setHostName("smtp.gmail.com");  
        email.setSSL(true);  
        email.setSmtpPort(465);   
        email.setTLS(true);//gmail  
        email.setAuthenticator(new DefaultAuthenticator("h***@gmail.com", "***"));  
        email.setFrom("h***@gmail.com");  
        email.addTo("**to@qq.com");  
        email.setSubject("TestCommonMail");  
        email.setMsg("This is a test mail ... :-)");  
        email.setCharset("gbk");  
          
        EmailAttachment attach = new EmailAttachment();  
        attach.setName("attachFileName");  
        attach.setPath("f:\\ok.txt");  
        attach.setDescription(EmailAttachment.ATTACHMENT);  
          
          
        email.attach(attach );  
          
        email.send();   
    }   
}  

 

分享到:
评论

相关推荐

    apache-james java发送邮件服务器

    标题中的"apache-james java发送邮件服务器"指的是使用Apache James作为邮件发送平台,通过Java编程语言进行配置和操作。 Apache James的主要特点和知识点包括: 1. **开源与社区支持**:Apache James是由Apache...

    java邮件发送例子 apache email demo

    Apache Commons Email库是Java中一个强大的工具,它简化了构建和发送电子邮件的过程。在这个例子中,我们将深入探讨如何使用Apache Commons Email库在Java中实现邮件发送。 首先,你需要在项目中引入Apache Commons...

    基于ApacheJames邮件服务器的收发邮件代码及服务

    Apache James邮件服务器是一款开源的、基于Java的全功能邮件服务器,它支持SMTP、POP3和IMAP协议,为企业和个人提供了一种可靠且可扩展的邮件处理解决方案。在本项目中,我们将探讨如何利用Apache James来实现邮件的...

    java定时生成execl并发送邮件

    这个功能涉及到多个Java库和技术,包括Apache POI用于处理Excel文件,Quartz作为定时任务调度器,以及JavaMail API来发送电子邮件。 首先,Apache POI是Java中用于读写Microsoft Office格式文件(如Excel)的开源库...

    基于Java的邮件发送模板

    本篇文章将详细讲解如何利用Java实现邮件发送,并结合Apache的相关库来创建邮件发送模板,以提升效率和用户体验。 首先,JavaMail API是Java中用于处理电子邮件的主要库。它提供了丰富的API,可以用来创建、发送和...

    java 发邮件带excel附件,以流的形式发送附件,不生成excel文件

    以上代码片段展示了如何在不生成临时Excel文件的情况下,使用JavaMail API和Apache POI发送带有Excel附件的邮件。这种方法既高效又节省资源,尤其适用于处理大量数据时。记得在完成邮件发送后,关闭所有打开的流,以...

    java邮件发送组件

    在实际开发中,除了直接使用Java Mail API,还可以选择一些成熟的Java邮件发送库,例如Apache Commons Email、Spring Framework的MailSender接口等,它们提供了更友好的API和额外的特性,可以帮助开发者快速实现邮件...

    java使用定时器,定时发送邮件

    这个`run()`方法应该使用JavaMail API或者第三方库(如Apache Commons Email)来实现邮件的创建、设置属性和发送。 邮件发送的基本步骤包括: 1. 创建`Session`对象,设置邮件服务器的相关参数,如SMTP主机地址、...

    java中email邮件发送接受和处理excel文件(xls)实例

    综上所述,Java通过JavaMail API和Apache POI库可以实现电子邮件的发送、接收以及Excel文件的处理。在Spring框架中,这些功能可以更加方便地集成和管理,提高开发效率。通过编写相应的逻辑,你可以创建一个自动化...

    Java通过Apache提供的Commons Email工具类实现邮箱发送验证码

    总之,Apache Commons Email为Java开发者提供了一个强大且易于使用的邮件发送工具,通过简单的代码即可实现包括发送验证码在内的各种邮件功能。在实际开发中,结合业务需求进行适当的优化和扩展,可以极大地提升开发...

    使用Apache-commons-email发送邮件

    在IT行业中,发送电子邮件是常见的任务,特别是在自动化脚本、通知系统或服务器...通过`SendMail.java`文件,我们可以学习到如何使用这个库来创建、配置和发送电子邮件,从而在项目中实现更高效、更可靠的邮件通信。

    java发送邮件

    Java发送邮件是Java编程中的一项常见任务,尤其在企业级应用和自动化通知系统中非常普遍。本项目基于Maven构建,但如果你不使用Maven,你需要手动添加以下三个关键的JAR包:`mail.jar`,`commons-email-X.X.jar`,...

    java发送邮件所需jar包.zip

    8. **第三方库**:除了JavaMail API,还有许多第三方库简化了邮件发送过程,如Apache Commons Email和Spring框架的Email支持。这些库通常提供了更友好的API,可以更轻松地处理复杂邮件内容和模板。 在压缩包中的...

    java发送邮件和发送短信代码

    在Java编程语言中,发送邮件和短信是常见的通信方式,特别是在自动化通知、客户服务或系统集成中。下面将详细讲解这两个主题。 ### 发送邮件 JavaMail API是Java平台上的一个标准库,用于处理电子邮件的发送和接收...

    apache邮件工具

    Apache邮件工具能够帮助用户实现基本的邮件发送、接收和管理功能,包括创建邮件、发送邮件到指定地址、设置邮件过滤规则、收发附件等。 在实际应用中,Apache James的使用通常涉及到以下几个关键知识点: 1. **...

    java 邮件发送测试

    总结来说,Java邮件发送涉及到JavaMail API的使用,以及可能的辅助库如Apache Commons Email,它们可以帮助我们方便地构造和发送邮件。在实际开发中,理解这些API的工作原理和用法,结合邮件服务器的配置,就能实现...

    Java开源邮件服务器james源码

    Java开源邮件服务器Apache James是基于Java技术构建的一款强大的邮件服务器软件。它的源代码开放,允许开发者深入了解其工作原理,并可根据需求进行定制化开发。Apache James 2.3.2是该项目的某个稳定版本,提供了...

    apache-skywalking-java-agent-8.9.0

    总结起来,"apache-skywalking-java-agent-8.9.0"是SkyWalking项目中用于监控JVM服务的重要组件,通过其强大的功能,可以帮助开发者和运维人员深入了解和优化他们的Java应用性能。通过学习和掌握SkyWalking的使用,...

    javamail发送邮件和java解析pdf

    JavaMail 是一个强大的开源库,用于在Java应用程序中发送和接收电子邮件。它提供了与各种邮件协议(如SMTP、POP3和IMAP)交互的接口,包括支持SSL/TLS加密的安全连接,以及MIME多部分消息处理,使得可以发送包含附件...

    java 发邮件例子

    `commons-email`是Apache Commons项目的一部分,它提供了一个简单且灵活的API来创建和发送电子邮件。在`java`开发中,`commons-email`库极大地简化了邮件发送的过程,无需深入了解底层的SMTP协议。以下是一个基于`...

Global site tag (gtag.js) - Google Analytics