`

WEB项目使用JavaMail 发送邮件

    博客分类:
  • j2ee
阅读更多

//下面是发送邮件的工具类,在web项目下使用,需要再导两个包
package com.zjh.shopping.util;

import java.util.Date;  
import java.util.Properties;  
 
import javax.activation.DataHandler;  
import javax.activation.FileDataSource;  
import javax.mail.Authenticator;  
import javax.mail.Multipart;  
import javax.mail.PasswordAuthentication;  
import javax.mail.internet.InternetAddress;  
import javax.mail.internet.MimeBodyPart;  
import javax.mail.internet.MimeMultipart;  
import javax.mail.internet.MimeUtility;  
 
 
public class JavaMailSendUtil {  
 
     
    public  void sendmail(String subject, String from, String[] to,  
            String text, String[] filenames, String mimeType) {  
        try {  
            Properties props = new Properties();  
 
            String smtp = "smtp.163.com"; // 设置发送邮件所用到的smtp  
            String servername = "*******";  //邮箱账号名
            String serverpaswd = "******";  //邮箱密码
 
            javax.mail.Session mailSession = null; // 邮件会话对象  
            javax.mail.internet.MimeMessage mimeMsg = null; // MIME 邮件对象  
 
            props = java.lang.System.getProperties(); // 获得系统属性对象  
            props.put("mail.smtp.host", smtp); // 设置SMTP主机  
            props.put("mail.smtp.auth", "true"); // 是否到服务器用户名和密码验证  
            // 到服务器验证发送的用户名和密码是否正确  
            SmtpAuthenticator myEmailAuther = new SmtpAuthenticator(servername,  
                    serverpaswd);  
            // 设置邮件会话 注意这里将认证信息放进了Session的创建参数里  
            mailSession = javax.mail.Session.getInstance(props,  
                    (Authenticator) myEmailAuther);  
            // 设置传输协议  
            javax.mail.Transport transport = mailSession.getTransport("smtp");  
           // 设置from、to等信息  
           mimeMsg = new javax.mail.internet.MimeMessage(mailSession);  
           if (null != from && !"".equals(from)) {  
               InternetAddress sentFrom = new InternetAddress(from);  
               mimeMsg.setFrom(sentFrom); // 设置发送人地址  
           }  
 
           InternetAddress[] sendTo = new InternetAddress[to.length];  
           for (int i = 0; i < to.length; i++) {  
               System.out.println("发送到:" + to[i]);  
               sendTo[i] = new InternetAddress(to[i]);  
           }  
 
           mimeMsg.setRecipients(  
                   javax.mail.internet.MimeMessage.RecipientType.TO, sendTo);  
           mimeMsg.setSubject(subject, "gb2312");  
 
           MimeBodyPart messageBodyPart1 = new MimeBodyPart();  
           // messageBodyPart.setText(UnicodeToChinese(text));  
           messageBodyPart1.setContent(text, mimeType);  
 
           // 附件传输格式  
           Multipart multipart = new MimeMultipart();  
           multipart.addBodyPart(messageBodyPart1);  
 
           for (int i = 0; i < filenames.length; i++) {  
               MimeBodyPart messageBodyPart2 = new MimeBodyPart();  
 
               String filename = filenames[i].split(";")[0];  
               String displayname = filenames[i].split(";")[1];  
               // 得到数据源  
               FileDataSource fds = new FileDataSource(filename);  
               // BodyPart添加附件本身  
               messageBodyPart2.setDataHandler(new DataHandler(fds));  
               // BodyPart添加附件文件名  
               messageBodyPart2.setFileName(MimeUtility  
                       .encodeText(displayname));  
               multipart.addBodyPart(messageBodyPart2);  
           }  
           mimeMsg.setContent(multipart);  
           // 设置信件头的发送日期  
           mimeMsg.setSentDate(new Date());  
           mimeMsg.saveChanges();  
           // 发送邮件  
           transport.send(mimeMsg);  
           transport.close();  
           System.out.println("发送到成功!!!");  
       } catch (Exception e) {  
           e.printStackTrace();  
       }  
   }  
 
    
   public static void main(String[] args) throws Exception {  
       String title = "测试邮件";// 所发送邮件的标题  
       String from = "************@163.com";// 从那里发送  
       String sendTo[] = { "********@qq.com" };// 发送到那里  
       // 邮件的文本内容,可以包含html标记则显示为html页面  
       String content = "test java send mail !!!!!!<br><a href="http://sjsky.iteye.com/">My blog</a>";  
     // 所包含的附件,及附件的重新命名  
     String fileNames[] = { "d:\\test.jpg;test.jpg" };  

     JavaMailSendUtil test = new JavaMailSendUtil();  
     try {  
         // MailSender mailsender = new MailSender();  
         test.sendmail(title, from, sendTo, content, fileNames,  
                 "text/html;charset=gb2312");  
     } catch (Exception ex) {  
         ex.printStackTrace();  
     }  
 }  

   
 class SmtpAuthenticator extends Authenticator {  
     String username = null;  
     String password = null;  

      
     public SmtpAuthenticator(String username, String password) {  
         super();  
         this.username = username;  
         this.password = password;  
     }  

      
     public PasswordAuthentication getPasswordAuthentication() {  
         return new PasswordAuthentication(this.username, this.password);  
       }  
   }  
}  

注意:在 myEclipse 里面建了一个 test 的 main 函数,发送邮件可以顺利通过,但是部署到 tomcat 以后会报 java.lang.NoClassDefFoundError: javax/mail/Message 的错误,必须activation.jar 和 mail.jar 两个包导入进去。

 

来自:http://blog.sina.com.cn/s/blog_6145ed810100ig73.html

  • mail.rar (363.1 KB)
  • 描述: jar文件
  • 下载次数: 15
分享到:
评论

相关推荐

    JavaMail发送邮件的例子

    下面我们将深入探讨JavaMail的基本概念、如何使用JavaMail发送邮件以及在Struts2框架中的实现方式。 JavaMail API主要包括以下组件: 1. `javax.mail.Session`:是JavaMail的核心,负责配置邮件服务器的信息,如...

    javamail发送邮件(超链接返回web后台)

    在这个“javamail发送邮件(超链接返回web后台)”的示例中,我们主要关注的是如何使用 JavaMail 发送包含超链接的邮件,并且这个超链接可以返回到 Web 后台。 1. **JavaMail 基础** JavaMail API 提供了 `javax....

    用Java类实现JavaMail发送邮件的例子

    在这个例子中,我们将详细探讨如何使用JavaMail发送邮件,包括SMTP认证、添加附件以及发送HTML内容的邮件。 首先,为了使用JavaMail API,我们需要引入相应的库。在这个例子中,`javamail`和`JAF`(JavaBeans ...

    jsp 利用 javamail发送邮件(附带java web项目文件)

    本教程将深入探讨如何在JSP(JavaServer Pages)中利用JavaMail API来实现邮件发送功能,同时提供了一个完整的Java Web项目文件供参考。 首先,要使用JavaMail,你需要在项目中引入必要的依赖。在Maven项目中,可以...

    Java web中javamail邮件发送实现案例.docx

    下面我们将详细讨论如何使用JavaMail发送带有附件的邮件。 首先,你需要在项目中引入JavaMail相关的依赖。对于Maven项目,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;com.sun.mail&lt;/groupId&gt; ...

    web版邮件接收发送问题

    在描述中提到的"内含原代码"可能是指有开发者尝试使用JavaMail API来实现Web版邮件功能时遇到了问题。通常,邮件发送涉及以下步骤: 1. **配置Properties对象**:设置SMTP服务器地址、端口、用户名和密码等信息。 2...

    基于JaVaMail的Web邮件客户端的设计与实现

    例如,设计一个简单的Web邮件系统,包括用户注册、登录、发送邮件、接收邮件等功能,并结合实际需求,探讨如何更好地集成JavaMail API,提高系统的稳定性和用户体验。 #### 八、总结与展望 基于JavaMail的Web邮件...

    javamail邮件发送项目

    【javamail邮件发送项目】是一个基于Java技术的邮件发送解决方案,主要利用Spring框架进行配置,结合FreeMarker(FTL)模板技术实现邮件内容的动态生成,并具备异步发送及批量处理邮件的能力,最多可同时处理1000份...

    使用javamail发邮件并打包为独立的jar可执行文件

    JavaMail是一个广泛使用的Java库,用于处理电子邮件的发送和接收。它提供了丰富的API,使得开发者能够在Java应用程序中方便地实现SMTP、POP3和IMAP等邮件协议的功能。本项目是关于如何利用JavaMail API和Spring Boot...

    JavaMail 发送验证邮件

    使用`DEBUG`级别的日志可以帮助跟踪JavaMail发送邮件的详细过程,以便诊断任何可能出现的问题。 以上就是使用JavaMail通过JSPServlet发送验证邮件的基本步骤和注意事项。在实际开发中,可能还需要处理更多细节,如...

    自己写的一个基于Javamail的邮件发送客户端

    这个基于 Javamail 的邮件发送客户端项目,显然利用了这一强大的工具来构建一个 Web 界面,用于四川联通电子渠道的邮件服务。下面我们将详细探讨 JavaMail 的核心概念以及如何实现邮件发送客户端。 1. **JavaMail ...

    struts2集成javamail发邮件示例详解

    以下是一个使用Struts2和JavaMail发送邮件的基本步骤和关键知识点: 1. **依赖库**: 在集成JavaMail之前,你需要确保你的项目包含了必要的库文件,如`mail.jar`和`activation.jar`。这两个JAR文件提供了JavaMail ...

    jsp/servlet javamail 发送邮件 可发送多个附件

    2. **SMTP服务器配置**: 在使用JavaMail发送邮件时,首先需要配置SMTP服务器的相关信息,包括主机地址、端口号、用户名和密码。这些信息通常在应用的配置文件中定义,以便在程序运行时加载。 3. **MIME消息**: ...

    基于JavaMail邮件系统的设计与实现 论文

    JavaMail邮件系统的设计与实现是基于Java编程语言的,它利用了JavaMail API来处理电子邮件的发送、接收等任务。JavaMail API是一个开源的、跨平台的库,它提供了与各种邮件服务器通信的能力,支持SMTP(简单邮件传输...

    java javamail 发送邮件 源代码 例子

    Java/javamail发送邮件是Java开发中常见的任务之一,它涉及到网络通信和电子邮件协议的知识。在Java中,JavaMail API提供了发送和接收电子邮件的功能。这个API遵循了JavaBeans Activation Framework (JAF) 和 ...

    SSM框架+Javamail发送邮件.docx

    \n\n要使用JavaMail发送邮件,首先需要在项目中引入JavaMail的依赖库。可以通过Maven或Gradle等构建工具添加对应的jar包。在本例中,可以从CSDN等资源网站下载并添加到项目的类路径下。\n\n为了启用SMTP服务,需要在...

    基于javaMail电子邮件系统的源代码

    开发者需要将编译后的JavaMail系统部署到Tomcat服务器上,以便通过Web访问和使用电子邮件功能。 在使用JavaMail API时,会涉及到两个关键的jar包:activation.jar和mail.jar。activation.jar包含了JavaBeans ...

Global site tag (gtag.js) - Google Analytics