Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 954|回复: 0

java 邮件发送 实例!

[复制链接]

该用户从未签到

发表于 2011-10-12 11:27:56 | 显示全部楼层 |阅读模式
package com.ghb.www.util;

import java.io.File;
import java.util.Date;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.Message;
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 javax.mail.internet.MimeUtility;

public class EmailSender {
private static final String charset = "GBK";
private static final String defaultMimetype = "text/plain";

public static void main(String[] args) throws Exception {
  EmailSender.send(new String[] { “收件人的邮箱”},
    "测试邮件发送!", "<a href='http://www.baidu.com'>呵呵</a>", null, "text/HTML");
}

/**
  * 发送邮件
  * @param receiver 收件人
  * @param subject 标题
  * @param mailContent 邮件内容
  * @param mimetype 内容类型 默认为text/plain,如果要发送HTML内容,应设置为text/html
  */
public static void send(String receiver, String subject,
   String mailContent, String mimetype) {
  send(new String[] { receiver }, subject, mailContent, mimetype);
}

/**
  * 发送邮件
  * @param receivers 收件人
  * @param subject 标题
  * @param mailContent 邮件内容
  * @param mimetype 内容类型 默认为text/plain,如果要发送HTML内容,应设置为text/html
  */
public static void send(String[] receivers, String subject,
   String mailContent, String mimetype) {
  send(receivers, subject, mailContent, null, mimetype);
}

/**
  * 发送邮件
  * @param receivers 收件人
  * @param subject 标题
  * @param mailContent 邮件内容
  * @param attachements 附件
  * @param mimetype 内容类型 默认为text/plain,如果要发送HTML内容,应设置为text/html
  */
public static void send(String[] receivers, String subject,
   String mailContent, File[] attachements, String mimetype) {
  Properties props = new Properties();
  
  /*以下是常用不同网站的pop和stmp服务器地址:

  网站                      接收服务器             外发服务器

  网易@163.com邮箱        pop.163.com;        smtp.163.com  
  网易@yeah.net邮箱       pop.yeah.net;       smtp.yeah.net  
  网易@netease.com邮箱   pop.netease.com;    smtp.netease.com  
  网易@126.com邮箱:      pop3.126.COM        SMTP.126.COM
  搜狐@sohu.com:        pop3.sohu.com;       smtp.sohu.com
  信网@eyou.com:        pop3.eyou.com;       mx.eyou.com
  新飞网@tom.com:       pop.tom.com;          smtp.tom.com
  亿唐@etang.com:       pop.free.etang.com   smtp.free.etang.com  
  21世纪@21cn.com:      pop.21cn.com;       smtp.21cn.com */
  
  props.put("mail.smtp.host", "smtp.163.com");//Smtp服务器地址
  props.put("mail.smtp.auth", "true");//需要校验
  Session session = Session.getDefaultInstance(props,
    new Authenticator() {
     protected PasswordAuthentication getPasswordAuthentication() {
      return new PasswordAuthentication("发件人邮箱",
        "发件人邮箱密码");//登录用户名/密码
     }
    });
  session.setDebug(true);
  try {
   MimeMessage mimeMessage = new MimeMessage(session);
   mimeMessage.setFrom(new InternetAddress("发件人邮箱"));//发件人邮件

   InternetAddress[] toAddress = new InternetAddress[receivers.length];
   for (int i = 0; i < receivers.length; i++) {
    toAddress = new InternetAddress(receivers);
   }
   mimeMessage.setRecipients(Message.RecipientType.TO, toAddress);//收件人邮件
   mimeMessage.setSubject(subject, charset);

   Multipart multipart = new MimeMultipart();
   //正文
   MimeBodyPart body = new MimeBodyPart();
   // body.setText(message, charset);不支持html
   body.setContent(mailContent, (mimetype != null
     && !"".equals(mimetype) ? mimetype : defaultMimetype)
     + ";charset=" + charset);
   multipart.addBodyPart(body);//发件内容
   //附件
   if (attachements != null) {
    for (File attachement : attachements) {
     MimeBodyPart attache = new MimeBodyPart();
     //ByteArrayDataSource bads = new ByteArrayDataSource(byte[],"application/x-any");
     attache.setDataHandler(new DataHandler(new FileDataSource(
       attachement)));
     String fileName = getLastName(attachement.getName());
     attache.setFileName(MimeUtility.encodeText(fileName,
       charset, null));
     multipart.addBodyPart(attache);
    }
   }
   mimeMessage.setContent(multipart);
   // SimpleDateFormat formcat = new SimpleDateFormat("yyyy-MM-dd");            
   mimeMessage.setSentDate(new Date());//formcat.parse("2010-5-23")
   Transport.send(mimeMessage);
  } catch (Exception e) {
   e.printStackTrace();
  }
}

private static String getLastName(String fileName) {
  int pos = fileName.lastIndexOf("\\");
  if (pos > -1) {
   fileName = fileName.substring(pos + 1);
  }
  pos = fileName.lastIndexOf("/");
  if (pos > -1) {
   fileName = fileName.substring(pos + 1);
  }
  return fileName;
}

}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-5-18 08:14 , Processed in 0.422389 second(s), 48 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表