用Java发送图文并茂的HTML邮件_.Net教程
教程Tag:暂无Tag,欢迎添加,赚取U币!
推荐:用在JavaScript的RequestHelper碰到一个小小的需求,就是要根据传入的锚(也就是url中#后面的东西啦)来显示不同的内容,记得以前写了的,不知道被我丢到哪去了,又要重新写一个,顺便把功能整理加强了一些,加入了取QueryString
- 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);
- }
- }
分享:ASP.NET2.0中控件的简单异步回调虽然已经有了ASP.NET AJAX了,最近学习ASP.NET控件的时候,逐步理解了原始的控件异步回调(代码取自《ASP.NET 2.0 高级编程》): 首先,在Render事件中添加好一个事件
相关.Net教程:
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP发送Email实例(可带附件)
- js实现广告漂浮效果的小例子
- asp.net Repeater 数据绑定的具体实现
- Asp.Net 无刷新文件上传并显示进度条的实现方法及思路
- Asp.net获取客户端IP常见代码存在的伪造IP问题探讨
- VS2010 水晶报表的使用方法
- ASP.NET中操作SQL数据库(连接字符串的配置及获取)
- asp.net页面传值测试实例代码
- DataGridView - DataGridViewCheckBoxCell的使用介绍
- asp.net中javascript的引用(直接引入和间接引入)
- 三层+存储过程实现分页示例代码
- 相关链接:
- 教程说明:
.Net教程-用Java发送图文并茂的HTML邮件。