`
zhb8015
  • 浏览: 377461 次
  • 性别: 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上百实例源码以及开源项目源代码

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

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

    java发送邮件2实例,内有java包。我原来是在myEcilpse上进行测试的,实例一是结合ssh框架使用,非常方便。实例二直接用servlet发送,稍微繁琐

    java mail 发送邮件

    java mail 邮件发送 代码文档 java_mail_发送邮件代码 发送邮件及邮件附件java代码实例(支持多附件_群发送)

    JAVA 发送HTML格式并带图片的邮件实例

    JAVA 发送文本格和HTML格式并带图片链接的邮件实例,图片可以为附件可以为邮件正文显示,可以为图片添加超链接

    JAVA 范例大全 光盘 资源

    实例71 配置Properties带附件发送邮件 175 实例72 资源国际化(Properties) 179 常见问题 读取Properties文件出现中文乱码 182 第9章 Java异常处理与反射机制 183 实例73 运用throws、throw、try与catch 183 ...

    Java JDK实例宝典

    全部代码出自电子工业出版社夏先波的《Java JDK实例宝典》一书,本书以J2SE 5.0为开发环境,选取Java应用的典型实例,循序渐进地介绍了Java语言的各种开发方法和技巧,实例代码注释详细规范,思路清晰。 第1章 ...

    JAVA上百实例源码以及开源项目

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    使用JAVA MAIL API 的实例

    使用基本的JAVAMAIL API 实现邮件收发与附件的附加

    利用Java发送邮件(含附件)的例子

    // 生成附件组件的实例 } catch (Exception e) { return false; } return true; } /** * 设置SMTP的身份认证 */ public void setNeedAuth(boolean need) { if (props == null) props = System.getProperties(); if ...

    java-Mail 发邮件实例

    该实例里包含了单个邮件发送、群发邮件、单个邮件加附件、群发邮件加附件、接收邮件等功能,希望对需要的朋友有所帮忙,我想这不会让看过的人失望的。

    写java程序实现发邮件功能

    压缩包中有纯java程序发送邮件其中有发送纯文本格式、带附件格式、图片格式、附件图片并显示格式。

    JavaMailTest111.7z

    新手实例,Java简单的实现了qq和163邮箱发送和接收邮件操作,同步实现附件下载功能。参考注意邮箱的授权码需要自己去验证,详情可以百度。

    复杂邮件程序完整Java源码,支持添加附件,图片,HTML格式文本,支持远程WebService调用

    复杂邮件程序完整Java源码,支持添加附件,图片,HTML格式文本,支持远程WebService调用*/ package com.hx.mail; import java.io.File; import java.util.Map; import javax.mail.Message.RecipientType; /** * ...

    javaMail编程实例

    这个实例实现了构建邮件服务器、简单的E-mail发送、发送附件、带身份验证的E-mail发送、跨代理的E-mail发送、 接收E-mail、在Applet中收取E-mail、E-mail口令验证功能

    SendCloud的Java开发包sendcloud4j.zip

    sendcloud4j 是 SendCloud 邮件服务的 Java 语言封装包。特点:支持 邮箱API v2 普通发送和模板发送支持批量发送(模板批量变量替换)支持添加附件发送Maven  &lt;groupId&gt;io.jstack  &lt;artifactId&gt;sendcloud4j  ...

    JAVA邮件发送例子

    发送带有附件的邮件可以调用 sendMultiPartEmail(); 3.发送HTML的邮件可以调用 sendHtmlEmail(); &lt;br&gt; 4.以上三种邮件发送方式都可以调用 sendEmail(); 但在调用前必需要实例化 EMailBean.java 对象

Global site tag (gtag.js) - Google Analytics