`
zhb8015
  • 浏览: 399737 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Group-logo
Spring Roo杂谈
浏览量:0
社区版块
存档分类
最新评论

java mail 实例 (带附件)

 
阅读更多

import java.util.Properties; 
import common.util.Email_Autherticatorbean; 
import javax.mail.Authenticator; 
import javax.mail.internet.InternetAddress; 
import org.apache.commons.lang.StringUtils; 
import javax.mail.internet.MimeBodyPart; 
import javax.mail.Multipart; 
import javax.activation.FileDataSource; 
import javax.mail.internet.MimeMultipart; 
import javax.activation.DataHandler; 
import javax.mail.internet.MimeUtility; 
import java.util.Date; 

/** 
* 利用java.mail的邮件发送程序 
*/ 

public class SendMailTest 

  public static void main(String[] args) 
  { 
    String title = "titleTest";//所发送邮件的标题 
    String from ="sir_znp@163.com";//从那里发送 
    String sendTo[] = {"znp@163.net","sir_znp@163.com"};//发送到那里 
    //邮件的文本内容,可以包含html标记则显示为html页面 
    String content = "mail test!!!!!!<br><a href=#>aaa</a>"; 
    //所包含的附件,及附件的重新命名 
    String fileNames[] = {"F:\\music\\text1.txt,text1.txt","F:\\music\\text2.txt,text2.txt"}; 
    try { 
    //  MailSender mailsender = new MailSender(); 
      sendmail(title, from, sendTo, content, fileNames,"text/html;charset=gb2312"); 
      } catch (Exception ex) { ex.printStackTrace(); } 
  } 

  public static void sendmail(String subject, String from, String[] to, String text, String[] filenames,String mimeType) throws Exception 
  { 
    //ResourceBundle mailProps = ResourceBundle.getBundle("mail");   可以从配置文件读取相应的参数 
    Properties props = new Properties(); 

    String smtp = "smtp.163.com";  //设置发送邮件所用到的smtp 
    String servername = "sir_znp"; 
    String serverpaswd = "123"; 

    javax.mail.Session mailSession; //邮件会话对象 
    javax.mail.internet.MimeMessage mimeMsg; //MIME邮件对象 

    props = java.lang.System.getProperties(); //获得系统属性对象 
    props.put("mail.smtp.host", smtp); //设置SMTP主机 
    props.put("mail.smtp.auth", "true"); //是否到服务器用户名和密码验证 
    //到服务器验证发送的用户名和密码是否正确 
    Email_Autherticatorbean myEmailAuther = new Email_Autherticatorbean(servername, serverpaswd); 
    //设置邮件会话 
    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 (!StringUtils.isEmpty(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]; 
      System.out.println("附件名:" + filename); 
      String displayname = filenames[i].split(",")[1]; 
      //得到数据源 
      FileDataSource fds = new FileDataSource(filename); 
      //得到附件本身并至入BodyPart 
      messageBodyPart2.setDataHandler(new DataHandler(fds)); 
      //得到文件名同样至入BodyPart 
      //messageBodyPart2.setFileName(displayname); 
      // messageBodyPart2.setFileName(fds.getName()); 
      messageBodyPart2.setFileName(MimeUtility.encodeText(displayname)); 
      multipart.addBodyPart(messageBodyPart2); 
    } 
    mimeMsg.setContent(multipart); 
    //设置信件头的发送日期 
    mimeMsg.setSentDate(new Date()); 
    mimeMsg.saveChanges(); 
    //发送邮件 
    transport.send(mimeMsg); 
    transport.close(); 
  } 

}  

验证类 
package common.util; 
import javax.mail.Authenticator; 
import javax.mail.PasswordAuthentication; 
public class Email_Autherticatorbean  extends Authenticator 

private String m_username = null; 
private String m_userpass = null; 

public void setUsername(String username) 

m_username = username; 


public void setUserpass(String userpass) 

m_userpass = userpass; 


public Email_Autherticatorbean(String username, String userpass) 

   super(); 
   setUsername(username); 
   setUserpass(userpass); 


public PasswordAuthentication getPasswordAuthentication() 


  return new PasswordAuthentication(m_username,m_userpass); 

}  

分享到:
评论

相关推荐

    java 发送附件mail

    在Java编程中,发送带有附件的邮件是一项常见的任务,尤其在企业级应用或者自动化脚本中。这个场景通常涉及到JavaMail API的使用,一个强大的库,可以用来处理SMTP(简单邮件传输协议)邮件服务。接下来,我们将深入...

    Java发mail实例

    通过实践这个实例,你可以掌握Java编程中发送邮件的核心技术,这对于开发各种业务系统,如通知服务、自动化报告等都是非常重要的。同时,熟悉Apache James的配置和管理,也能帮助你更好地理解邮件服务器的运作机制。

    java连接Lotes邮件服务器(Domino) 读取邮件内容附件完整实例

    在Java编程中,连接到IBM Lotus Domino(也称为Lotes)邮件服务器并读取邮件内容和附件是一项常见的任务。Lotus Domino是IBM提供的一款企业级的协作软件,它集成了电子邮件、日历、任务和文档管理等功能。这篇教程将...

    使用springMail发送带附件的email

    在本项目中,我们将深入探讨如何使用SpringMail发送带有附件的电子邮件。首先,我们需要了解几个核心概念: 1. **JavaMail API**: 这是Java平台上的一个标准API,用于处理邮件相关任务,如创建、发送和接收邮件。它...

    JAVA MAIL发送邮件带附件和图片

    在Java编程中,发送带有附件和图片的电子邮件是一项常见的任务,尤其在自动化通知、报告分发等场景下。本文将详细讲解如何使用Java Mail API来实现这一功能,同时参考提供的`TemplateMailMessage.java`和`...

    java发送邮件实例(含mail包)

    在这个实例中,我们将深入探讨如何使用Java Mail API发送邮件,以及在不同环境下(如SSH框架和Servlet)的应用。 首先,我们要了解Java Mail API的基本概念。JavaMail API是由Sun Microsystems开发的一套用于处理...

    java 收发 带附件 邮件

    在Java编程中,发送和接收带有附件的电子邮件是一项...总结来说,Java Mail API提供了一套完整的框架,使得在Java中收发带有附件的邮件变得简单易行。通过理解和运用上述知识点,你可以构建出符合需求的邮件处理系统。

    Java Mail.rar

    在实际开发中,使用Java Mail API时,我们需要首先添加对应的jar包到项目的类路径中,然后创建 `Session` 实例,配置邮件服务器的相关参数,最后通过 `Transport` 或 `Store` 对象进行邮件的发送和接收操作。...

    发送邮件—java代码简单实例

    ### 发送邮件——Java代码简单实例 #### 一、引言 在当今信息化时代,电子邮件是一种非常重要的通信方式。在企业应用开发中,通过程序自动发送邮件也是一项常见需求。本篇文章将详细介绍如何使用JavaMail API来实现...

    java email 发送带附件的邮件

    在本文中,我们将深入探讨如何使用JavaMail API来发送带有附件的电子邮件。 首先,我们需要理解JavaMail的基本组件。`javax.mail.Session`是JavaMail的核心,用于管理邮件会话和配置邮件服务器信息。`Message`对象...

    发送邮件及邮件附件java代码实例(支持多附件,群发送).pdf

    【Java 发送邮件及邮件附件】 在Java编程中,发送邮件及附加文件是一项常见的任务,这通常涉及到SMTP(Simple Mail Transfer Protocol)协议。这里我们分析的`Mail.java`类提供了一个实现此功能的示例,它使用了...

    Java_Mail.zip_java_java mail_java.mail_mail

    Java Mail 是一个强大的Java库,用于处理电子邮件的发送和接收。这个库提供了全面的API,使得开发者能够方便地实现SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)等邮件服务。在Java应用...

    java-mail开发包

    Java Mail 是一个开源的Java API,它为Java开发者提供了处理电子邮件的能力。这个开发包是由Oracle官方网站提供的,确保了其权威性和稳定性。Java Mail API 支持SMTP、POP3、IMAP等多种邮件协议,使得开发者可以方便...

    Java Mail 发布邮件

    Java Mail 是一个强大的开源库,用于在Java应用程序中处理电子邮件通信。它提供了API,使得开发者可以方便地发送、接收和管理邮件。这个压缩包文件很可能包含了一组示例代码或工具,帮助我们理解如何使用Java Mail ...

    javamail 实例

    JavaMail 是一个开源的 Java API,它允许 Java 程序员通过 SMTP、POP3 或 IMAP 协议发送和接收电子邮件。这个实例主要讲解如何使用 JavaMail API 实现邮件功能,结合源码和工具来深入理解其工作原理。 首先,我们...

    java 发邮件实例

    本篇文章将深入探讨如何使用Java实现邮件发送功能,主要基于`javax.mail`库,这是一个标准的Java邮件API。 首先,理解Java Mail API的工作原理至关重要。它提供了一组接口和类,用于处理邮件服务器上的邮件消息。...

    java-mail-1.4

    在“java-mail-1.4”这个版本中,我们主要关注的是 JavaMail 1.4 版本的相关特性、使用方法以及重要概念。 JavaMail 提供了与多种邮件协议(如 SMTP、POP3、IMAP)交互的能力,使得开发者能够轻松地在 Java 应用...

    java_mail 1.5.zip

    这个“java_mail 1.5.zip”压缩包包含的是JavaMail 1.5版本的源代码,对于理解其内部工作原理和自定义扩展功能非常有帮助。 JavaMail API的核心组件包括: 1. **JavaMail Session**: 是JavaMail的核心,负责配置...

    发送邮件及邮件附件java代码实例(支持多附件-群发送)教案资料.docx

    以下是一个使用Socket连接邮件服务器并实现邮件发送及附件上传的Java代码实例。这个实例中,我们重点讲解以下几个核心知识点: 1. **SMTP 协议**: Simple Mail Transfer Protocol (SMTP) 是用于在互联网上发送...

Global site tag (gtag.js) - Google Analytics