view plaincopy to clipboardprint?
package com.syj;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Arrays;
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.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.BodyPart;
import javax.mail.Multipart;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMultipart;
import com.sun.istack.internal.ByteArrayDataSource;
/**
* <P>
* Title:用java发送邮件的例子
* </P>
*
* <P>
* Description:发送图片附件并在html中使用该图片
* </P>
*
* <P>
* Copyright: Copyright (c) 2007
* </P>
*
* @author 孙钰佳
* @main sunyujia@yahoo.cn
* @date Jun 10, 2008 12:35:26 AM
*/
public class SendMail {
private static String username = "xxxx";
private static String password = "xxxx";
private static String smtpServer = "smtp.163.com";
private static String fromMailAddress = "xxxx@163.com";
private static String toMailAddress = "sunyujia@yahoo.cn";
public static void main(String[] args) throws Exception {
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host", smtpServer);
// 获得邮件会话对象
Session session = Session.getDefaultInstance(props,
new SmtpAuthenticator(username, password));
/** *************************************************** */
// 创建MIME邮件对象
MimeMessage mimeMessage = new MimeMessage(session);
mimeMessage.setFrom(new InternetAddress(fromMailAddress));// 发件人
mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(
toMailAddress));// 收件人
mimeMessage.setSubject("主题");
mimeMessage.setSentDate(new Date());// 发送日期
Multipart mp = new MimeMultipart("related");// related意味着可以发送html格式的邮件
/** *************************************************** */
BodyPart bodyPart = new MimeBodyPart();// 正文
bodyPart.setDataHandler(new DataHandler("测<img src="cid:IMG1" />试",
"text/html;charset=GBK"));// 网页格式
/** *************************************************** */
BodyPart attachBodyPart = new MimeBodyPart();// 普通附件
FileDataSource fds = new FileDataSource("c:/boot.ini");
attachBodyPart.setDataHandler(new DataHandler(fds));
attachBodyPart.setFileName("=?GBK?B?"
+ new sun.misc.BASE64Encoder().encode(fds.getName().getBytes())
+ "?=");// 解决附件名中文乱码
mp.addBodyPart(attachBodyPart);
/** *************************************************** */
MimeBodyPart imgBodyPart = new MimeBodyPart(); // 附件图标
byte[] bytes = readFile("C:/button.gif");
ByteArrayDataSource fileds = new ByteArrayDataSource(bytes,
"application/octet-stream");
imgBodyPart.setDataHandler(new DataHandler(fileds));
imgBodyPart.setFileName("button.gif");
imgBodyPart.setHeader("Content-ID", "<IMG1></IMG1>");// 在html中使用该图片方法src="cid:IMG1"
mp.addBodyPart(imgBodyPart);
/** *************************************************** */
mp.addBodyPart(bodyPart);
mimeMessage.setContent(mp);// 设置邮件内容对象
Transport.send(mimeMessage);// 发送邮件
}
/**
* 读取文件
*
* @param file
* 文件路径
* @return 返回二进制数组
*/
public static byte[] readFile(String file) {
FileInputStream fis = null;
ByteArrayOutputStream bos = null;
try {
fis = new FileInputStream(file);
bos = new ByteArrayOutputStream();
int bytesRead;
byte buffer[] = new byte[1024 * 1024];
while ((bytesRead = fis.read(buffer)) != -1) {
bos.write(buffer, 0, bytesRead);
Arrays.fill(buffer, (byte) 0);
}
} catch (IOException e1) {
e1.printStackTrace();
} finally {
try {
if (bos != null)
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return bos.toByteArray();
}
}
/**
* Smtp认证
*/
class SmtpAuthenticator extends Authenticator {
String username = null;
String password = null;
// SMTP身份验证
public SmtpAuthenticator(String username, String password) {
this.username = username;
this.password = password;
}
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(this.username, this.password);
}
}
原文网址:http://blog.csdn.net/sunyujia/archive/2008/06/10/2528696.aspx
分享到:
相关推荐
图文并茂邮件实现、普通邮件发送演示、带附件的邮件发送的源码以及编写时所参考的相关资料和大家分享一下!
一、配置要求 1、MATLAB版本要求:至少R2006b版本(MATLAB 7.3),检查MATLAB安装文件夹下toolbox中是否有javabuilder这一项。 2、安装JDK1.5版本以上。 二、环境配置 ...三、用JAVA Builder创建JAVA组件 ……
Java 线程池详解,图文并茂
一本非常好的Java入门书,彩色pdf格式,图文并茂,非常绚丽!
Java 图形界面开发--图文并茂建立学生管理系统.rar
基于java语言开发的学生信息管理系统,里面包含java源代码,图文并茂,适合学习和开发者参考。
邮件营销 益体网内部学习资料邮件地址收集图文并茂详解 好几种方法哦
PCB知识图文并茂PCB知识图文并茂PCB知识图文并茂PCB知识图文并茂
JAVA 入门书籍,简单易懂 《head first java》是本完整的面向对象(object-oriented,oo)程序设计和java的学习...·使用java api函数库 ·编写、测试与部署应用程序 ·处理异常 ·多线程 ·网络程序设计 ·集合与泛型
图文并茂、手把手教你怎么将Java项目与Flex4整合项目源代码,详情请查看我的博文:http://blog.csdn.net/youqishini/article/details/6989930
很多企业发出的邮件都是图文并茂的,其中有部分是在邮件中引用网上的图片网址,更专业些的方法是直接在邮件中通过内联附件内嵌图片,这个功能可以由一些邮件客户端程序实现,那么我们怎么在.Net 中实现这一功能呢?...
HTML入门教程(图文并茂 版) 页面 文件结构 语言字符集信息 背景色彩和文字色彩 页面空白 链接 开新窗口 标尺线 字体 标题 字号 物理字体 逻辑字体 颜色 客户端字体 字符实体 ...
HTML教程(最全的图文并茂教程)
清华大学 java教程 , 图文并茂, 深入浅出
《Java Web开发完全掌握》深入浅出,图文并茂,直观生动,结合大量典型实例帮助读者理解和应用知识。为了方便读者学习,书中实例所涉及的源代码都收录到《Java Web开发完全掌握》的配套光盘中,供读者在学习过程中...
图文并茂VLAN全接触,图文并茂VLAN全接触图文并茂VLAN全接触图文并茂VLAN全接触图文并茂VLAN全接触图文并茂VLAN全接触图文并茂VLAN全接触图文并茂VLAN全接触 不愿意多写
图文并茂、手把手教你怎么将Java项目与Flex4整合,详情请看我的博客http://blog.csdn.net/youqishini/article/details/6969769
HTML5和CSS3制作的展示类页面,使用了HTML5及CSS3的新标签和特性,页面图文并茂。兼容IE9+、Chrome、Firefox等主流浏览器;页面兼容不同分辨率的屏幕。包含一个html文件,四个css文件,一个js文件及若干图片。由于...
java安装教程 JDK 是 Java 开发工具包(Java Development Kit )的缩写。它是一种用于构建在 J Java ...本教程是java安装的合集资源,里面图文并茂,详细介绍如何安装java,有兴趣的朋友可以下载学习。
磁盘阵列RAID详解_图文并茂