java程序发送内嵌图片、带附件邮件

package mail;

import java.io.UnsupportedEncodingException;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
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 SendMail2 {

/**
* @param args
* @throws MessagingException
* @throws AddressException
* @throws UnsupportedEncodingException
*/
public static void main(String[] args) throws AddressException, MessagingException, UnsupportedEncodingException {
Properties props = new Properties();//环境变量设置。
props.setProperty("mail.transport.protocol", "smtp");//发送使用的协议
props.setProperty("mail.host", "smtp.163.com");//发送服务器的主机地址
props.setProperty("mail.smtp.auth", "true");//请求身份验证
Session session = Session.getDefaultInstance(props,new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("[email protected]","你猜?");
}
});
MimeMessage message = new MimeMessage(session);//代表一封邮件
message.setFrom(new InternetAddress("[email protected]"));//设置发件人
message.setRecipients(Message.RecipientType.TO, "[email protected]");//设置收件人
message.setSubject("这是一封文本中内嵌图片的邮件");//设置主题
MimeBodyPart textPart=new MimeBodyPart();
textPart.setContent("美女bbb<img src=‘cid:mm‘/>bbb", "text/html;charset=UTF-8");
//内嵌图片部分
MimeBodyPart imagePart = new MimeBodyPart();
DataHandler dh = new DataHandler(new FileDataSource("c:/1.jpg"));
imagePart.setDataHandler(dh);
imagePart.setContentID("mm");
//文本和内嵌图片合体
MimeMultipart mpart1 = new MimeMultipart();
mpart1.addBodyPart(textPart);
mpart1.addBodyPart(imagePart);
mpart1.setSubType("related");
MimeBodyPart textImagePart = new MimeBodyPart();
textImagePart.setContent(mpart1);

MimeBodyPart attachmentPart = new MimeBodyPart();
dh = new DataHandler(new FileDataSource("c:/附件.zip"));
String filename = dh.getName();//获取文件名
System.out.println(filename);
attachmentPart.setDataHandler(dh);
attachmentPart.setFileName(MimeUtility.encodeText(filename));//手工设置文件名.中文文件名要注意编码

MimeMultipart mpart2 = new MimeMultipart();
mpart2.addBodyPart(textImagePart);//文本加内嵌图片
mpart2.addBodyPart(attachmentPart);//附件
mpart2.setSubType("mixed");//复杂关系
message.setContent(mpart2);

//发送邮件
// Transport ts = session.getTransport();
// ts.connect("[email protected]","你猜猜?");//连接
// ts.sendMessage(message, message.getAllRecipients());
// ts.close();
Transport.send(message);
}

}

时间: 2024-07-30 03:25:08

java程序发送内嵌图片、带附件邮件的相关文章

java发送内嵌图片邮件

前言: 博客系统中需要邮件服务的功能,以前写过类似的功能,不过功能太简单了,仅仅是发送文本内容,现在尝试一下发送内嵌图片邮件! 准备工作: 请参考:http://www.cnblogs.com/hujunzheng/p/4792831.html 整体效果: 发送端:网易邮箱:接收端:qq邮箱. 1.web前端 2.在网易邮箱“已发送”中可以看见通过java代码发送的邮件 3.同样在qq邮箱中也可以看到这样的效果 实现过程: 1.web前端(bootstrap布局) <form action=&quo

Spring 发送内嵌图片的邮件 遇到的问题

问题1:spring 发送带图片的html格式的邮件? 解决方法1:直接在发送内容里面添加 <img src="http://www.rgagnon.com/images/jht.gif"> 这种方法是最简单的发送带图片的邮件的方法,但是存在一个问题:有的邮箱会把邮件中有带服务器地址的图片放到垃圾箱,导致邮件收不到,于是继续整. 解决方法2:使用Spring带的 MimeMessageHelper,说不清楚直接看代码: 1 public class MyClass { 2

[Java] JavaMail 发送 html 格式、带附件的邮件

本案例演示发送 html 格式,可带附件的邮件发送.发送纯文本邮件的例子可参照上一篇博文JavaMail 简单案例. EmailHelper, Email 的帮助类,向帮助类提供 SMTP 服务器域名.用户名.密码.发送人邮箱.收件人邮箱.邮件主题.html 格式的内容(可选).附件(可选),便可发送一份邮件. SendEmailDemo, 演示发送邮件. import java.util.Properties; import javax.activation.DataHandler; impo

java实现发送邮件可多个附件内嵌图片-commons-email使用

前言 java实现发邮件功能,其实SUN在javaEE的开发包里给我们提供了相关的工具,利用 mail.jar 和 activation.jar可以实现这个功能,n年前包括我第一次实习的时候项目上也是用SUN提供的包实现的,实现起来比较繁琐麻烦,今天我们就用Apache的工具包commons-email包来实现发送带邮件和内嵌图片的功能,它是把前者做了下封装,使用起来更加的简易方便明了,所以我们使用commons-email来实现发送邮件的功能,必须也引入mail.jar,activation.

生成带内嵌图片的二维码

在博问上看到有同学在问如何实现一个带内嵌图片的二维码,所以准备记录下来,供同学们参考. 1.首先准备一个用于内嵌的图片. 2.既然生成二维码码,那肯定需要将什么样的内容生成二维码,这里我用http://www.baidu.com作为生成二维码的字符串 private string QcodeSource { get { return "http://www.baidu.com"; } } 3.我们来看看根据QcodeSource生成二维码的方法,这里返回Byte[].PS:这里用了 G

Python2.7 smtplib发送带附件邮件报错STARTTLS解决方法

最近在SIOMP系统中添加一项功能时,即自动发送带附件邮件到指定邮箱时,发现在发送时报错:错误信息:STARTTLS extension not supported by server.很是奇怪,但发送无附件邮件时,可以正常发送,且不报错,前期以为是代码存在问题,如果调出对应的错误信息反馈,似乎和代码没有什么关系: 详细代码如下所示: # -*- coding: utf-8 -*- import email from email.mime.text import MIMEText from em

原生js实现tab选项卡里内嵌图片滚动特效代码

<!DOCTYPE HTML><html lang="en-US"><head><meta charset="UTF-8"><title>原生js实现tab选项卡里内嵌图片滚动特效代码</title><meta name="keywords" content="原生js实现tab选项卡里内嵌图片滚动特效代码" /><meta name=&

python实现邮件发送完整代码(带附件发送方式)

实例一:利用SMTP与EMAIL实现邮件发送,带附件(完整代码) __author__ = 'Administrator'#coding=gb2312 from email.Header import Headerfrom email.MIMEText import MIMETextfrom email.MIMEMultipart import MIMEMultipartimport smtplib, datetime def SendMailAttach(): msg = MIMEMultip

7.PL_SQL——在PL_SQL程序中内嵌查询语句、DML语句和事物处理语句

在PL/SQL中可以使用的SQL语句主要有以下几类: SELECT 查询语句,DML语句,Transaction 事物处理语句,本文将对这几类语句在PL/SQL中的用法逐一介绍. 一.查询语句-SELECT SELECT 语句用来查询一条或多条语句.虽然SELECT 语句也属于DML语句,但SELECT是只读的,所以单独列出. 在PL/SQL中使用SELECT 语句的格式如下:   SELECT select_list INTO {variable_name[,variable_name]...