`
suhuanzheng7784877
  • 浏览: 702588 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Ff8d036b-05a9-33b5-828a-2633bb68b7e6
读金庸故事,品程序人生
浏览量:47708
社区版块
存档分类
最新评论

JavaEE5学习笔记04-JavaMail使用总结---2

 
阅读更多

1.      发送邮件实例

还是来个实例代码实在点

/**

 * 简单的发送邮件例子

 

 */

 

public class SendMail {

    // 目的

    private String to;

    // 来源

    private String from;

    // 发送邮件的服务器

    private String smtpServer;

    // 发送端的账户

    private String userName;

    // 发送端的密码

    private String password;

    // 邮件主题

    private String subject;

    // 邮件内容

    private String content;

    // 附件

    List<String> attachments = new ArrayList<String>();

    //……………………省略setter、getter

 

    public SendMail() {

 

    } 

 

    /**

     * 中文gbk转换

     *

     * @param text

     * @return

     */

    public String transferChinese(String text) {

       try {

           //对消息进行gbk转换

           text = MimeUtility.encodeText(new String(text.getBytes()),

                  "GB2312", "B");

       } catch (UnsupportedEncodingException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       }

       return text;

    }

 

    /**

     * 添加附件

     *

     * @param name

     */

    public void attachFile(String name) {

       attachments.add(name);

    }

 

    /**

     * 发邮件

     *

     * @return

     * @throws MessagingException

     * @throws AddressException

     */

    public boolean sendMail() throws Exception {

 

       // 属性配置

       Properties properties = new Properties();

       properties.put("mail.smtp.host", smtpServer);

       // 是否进行smtp验证

       properties.put("mail.smtp.auth", "true");

       Session session = Session.getDefaultInstance(properties,

              new Authenticator() {//构造服务器认证对象

 

                  @Override

                  protected PasswordAuthentication getPasswordAuthentication() {

                     return new PasswordAuthentication(userName, password);

                  }

              });

       //建立实际邮件对象

       //发送函数中的参数也是MimeMessage

       MimeMessage msg = new MimeMessage(session);

       // 设置发件人地址

       msg.setFrom(new InternetAddress(from));

       // 设置收件人

       // 收件人可以是多个,所以是数组

       InternetAddress[] internetAddressTo = { new InternetAddress(to),new InternetAddress("stail111@163.com") };

       // 目标的发送类型【直接发、抄送、暗送】

       msg.setRecipients(Message.RecipientType.TO, internetAddressTo);

       // 中文主题gbk转换

       subject = transferChinese(subject);

       msg.setSubject(subject);

       //建立保存电子邮件的内容的容器

       Multipart mp = new MimeMultipart();

       // 构造正文txt文本内容

       MimeBodyPart mbpContent = new MimeBodyPart();

       mbpContent.setText(content);

       //电子邮件的内容的容器添加txt内容

       mp.addBodyPart(mbpContent);

       // 构造邮件附件

       for (String files : attachments) {

           MimeBodyPart filembpContent = new MimeBodyPart();

           FileDataSource fds = new FileDataSource(files);

           filembpContent.setDataHandler(new DataHandler(fds));

           filembpContent.setFileName(fds.getName());

           mp.addBodyPart(filembpContent);

       }

       attachments.clear();

       msg.setContent(mp);

       msg.setSentDate(new Date());

       // 真正发送邮件

       Transport.send(msg);

       return true;

    }

}

这里注意的是对于中文主题的中文设置。

发送邮件的步骤就是:1:建立邮件Session会话2:通过会话创建MimeMessage对象3:对MimeMessage对象设置属性,内容、主题、附件等等 4:用Trasport发送邮件

分享到:
评论

相关推荐

    JavaEE5学习笔记04-JavaMail使用总结

    ### JavaEE5学习笔记04-JavaMail使用总结 在JavaEE5的学习过程中,JavaMail是一个非常重要的组件,它提供了发送、接收电子邮件的功能,并且能够与各种不同的邮件服务器进行交互。下面将根据提供的内容,详细解析...

    JavaEE5学习笔记04-JavaMail使用总结---3

    这篇学习笔记主要聚焦于JavaMail在JavaEE5中的使用,通过深入理解其核心概念和实践操作,我们可以更好地在实际项目中应用这一工具。 JavaMail API提供了一套标准的接口,允许Java应用程序发送和接收电子邮件。它...

    JavaEE5学习笔记01-JTA和数据库事务

    ### JavaEE5学习笔记01-JTA和数据库事务:深入解析与应用 #### 一、JavaEE5概览与核心组件 JavaEE5是Java Enterprise Edition的第五个版本,标志着企业级Java应用的一个重要里程碑。它引入了一系列重要的新特性,...

    JavaEE5学习笔记07-Web层与EJB集成总结

    ### JavaEE5学习笔记07-Web层与EJB集成总结 #### 一、JavaEE5框架中的Web层与EJB集成概述 在JavaEE5(即Java Platform, Enterprise Edition 5)中,Web层与EJB(Enterprise JavaBeans)的集成是构建企业级应用的...

    JavaEE源代码 struts2-core-2.0.11

    JavaEE源代码 struts2-core-2.0.11JavaEE源代码 struts2-core-2.0.11JavaEE源代码 struts2-core-2.0.11JavaEE源代码 struts2-core-2.0.11JavaEE源代码 struts2-core-2.0.11JavaEE源代码 struts2-core-2.0.11JavaEE源...

    JavaEE源代码 struts2-spring-plugin-2.0.11

    JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-...

    javaee-api-8.0-javadoc.jar

    javaee-api-8.0-javadoc.jar,这是javaee1.8api的jar包,解压后可用javadoc2chm制作成chm帮助文档。

    javaee-api-6.0-5

    java javaee-api-6.0-5

    JavaEE源代码 jaxen-1.1-beta-7

    JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-...

    JavaEE源代码 commons-logging-1.0.4

    JavaEE源代码 commons-logging-1.0.4JavaEE源代码 commons-logging-1.0.4JavaEE源代码 commons-logging-1.0.4JavaEE源代码 commons-logging-1.0.4JavaEE源代码 commons-logging-1.0.4JavaEE源代码 commons-logging-...

    JavaEE源代码 commons-collections-2.1.1

    JavaEE源代码 commons-collections-2.1.1JavaEE源代码 commons-collections-2.1.1JavaEE源代码 commons-collections-2.1.1JavaEE源代码 commons-collections-2.1.1JavaEE源代码 commons-collections-2.1.1JavaEE源...

    javaEE健康管理系统SSH-oracle(源码+数据库sql+lun文+视频齐全).zip

    javaEE健康管理系统SSH-oracle(源码+数据库sql+lun文+视频齐全)javaEE健康管理系统SSH-oracle(源码+数据库sql+lun文+视频齐全)javaEE健康管理系统SSH-oracle(源码+数据库sql+lun文+视频齐全)javaEE健康管理系统SSH-...

    javaee5-doc-api

    在这个“javaee5-doc-api”压缩包中,包含的是Java EE 5的官方API文档,对于开发者来说是一份非常重要的参考资料。 **1. Servlet API** Servlet是Java EE中处理HTTP请求的核心组件。在Java EE 5中,Servlet API升级...

    JavaEE源代码 ognl-2.6.11

    JavaEE源代码 ognl-2.6.11JavaEE源代码 ognl-2.6.11JavaEE源代码 ognl-2.6.11JavaEE源代码 ognl-2.6.11JavaEE源代码 ognl-2.6.11JavaEE源代码 ognl-2.6.11JavaEE源代码 ognl-2.6.11JavaEE源代码 ognl-2.6.11JavaEE源...

Global site tag (gtag.js) - Google Analytics