javamail发送图片

java 邮件中怎么发送html文件的

首先Java发送邮件需要用到JavaMail,先到Oracle官网上下载好最新版本的JavaMail(刚才看了一下,最新是1.5.3),把下载的这个jar文件放到classpath里(如果是Web项目,就放到WEB-INF/lib目录下。

JavaMail主要支持发送纯文本的和html格式的邮件。

发送html格式的邮件的一个例程如下:

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimeUtility;

import javax.mail.Session;

import javax.mail.MessagingException;

import javax.mail.Transport;

public class SendHtmlMail {

public static void sendMessage(String smtpHost,

String from, String to,

String subject, String messageText)

throws MessagingException,java.io.UnsupportedEncodingException {

// Step 1: Configure the mail session

System.out.println(“Configuring mail session for: ” + smtpHost);

java.util.Properties props = new java.util.Properties();

props.setProperty(“mail.smtp.auth”, “true”);//指定是否需要SMTP验证

props.setProperty(“mail.smtp.host”, smtpHost);//指定SMTP服务器

props.put(“mail.transport.protocol”, “smtp”);

Session mailSession = Session.getDefaultInstance(props);

mailSession.setDebug(true);//是否在控制台显示debug信息

// Step 2: Construct the message

System.out.println(“Constructing message – from=” + from + ” to=” + to);

InternetAddress fromAddress = new InternetAddress(from);

InternetAddress toAddress = new InternetAddress(to);

MimeMessage testMessage = new MimeMessage(mailSession);

testMessage.setFrom(fromAddress);

testMessage.addRecipient(javax.mail.Message.RecipientType.TO, toAddress);

testMessage.setSentDate(new java.util.Date());

testMessage.setSubject(MimeUtility.encodeText(subject,”gb2312″,”B”));

testMessage.setContent(messageText, “text/html;charset=gb2312”);

System.out.println(“Message constructed”);

// Step 3: Now send the message

Transport transport = mailSession.getTransport(“smtp”);

transport.connect(smtpHost, “webmaster”, “password”);

transport.sendMessage(testMessage, testMessage.getAllRecipients());

transport.close();

System.out.println(“Message sent!”);

}

public static void main(String[] args) {

String smtpHost = “www.easyaq.com”;

String from = “webmaster@mymail.com”;

String to = “mfc42d@sohu.com”;

String subject = “html邮件测试”; //subject javamail自动转码

StringBuffer theMessage = new StringBuffer();

theMessage.append(“h2font color=red这倒霉孩子/font/h2”);

theMessage.append(“hr”);

theMessage.append(“i年年失望年年望/i”);

try {

SendHtmlMail.sendMessage(smtpHost, from, to, subject, theMessage.toString());

}

catch (javax.mail.MessagingException exc) {

exc.printStackTrace();

}

catch (java.io.UnsupportedEncodingException exc) {

exc.printStackTrace();

}

}

}

JavaMail是封装了很多邮件操作的,所以使用起来不很困难,建议你到JavaMail官网看一下API或下载Java Doc API文档。

javamail发送图片

如何利用javamail发送带图片跟链接的邮件

代码如下:

import java.util.Properties;

import javax.mail.Authenticator;

import javax.mail.Message;

import javax.mail.Message.RecipientType;

import javax.mail.PasswordAuthentication;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

public class EmailTest {

public static void main(String[] args) throws Exception{

Properties props = new Properties();

props.setProperty(“mail.smtp.auth”, “true”);

props.setProperty(“mail.transport.protocol”, “smtp”);

props.setProperty(“mail.host”, “smtp.163.com”);

Session session = Session.getInstance(props,

new Authenticator() {

protected PasswordAuthentication getPasswordAuthentication(){

return new PasswordAuthentication(“xxx”,”xxx”);//这里分别填写发送email的用户名、密码

}

}

);

session.setDebug(true);

Message msg = new MimeMessage(session);

msg.setFrom(new InternetAddress(“xxx”));//这里是发送方的email地址如:xxx@163.com

msg.setSubject(“test javamail”);

msg.setRecipients(RecipientType.TO,

InternetAddress.parse(“xxx”));//这里是接收方的email地址如:xxx@163.com

msg.setContent(“a href=\”\”谷歌/a”,”text/html;charset=gb2312″);

Transport.send(msg);

}

}

JavaMail发送带图片的html邮件,OutLook 2007无法显示图片,Foxmail正常

你在 javamail 里面设置附件的时候,需要注意两个地方:

1)设置 subType 为 related (这个是必须的,否则有些程序会将内置的图当成附件来处理了)

2)  使用 MimeMultipart 来将各个内容分别 add 进去。

你可以直接参考下面链接的内容:

这里面给你把部分内容直接复制出来了:

 MimeMultipart rootContainer = new MimeMultipart();

  rootContainer.setSubType(“related”); 

  rootContainer.addBodyPart(alternativeMultiPartWithPlainTextAndHtml); // not in focus here

  rootContainer.addBodyPart(createInlineImagePart(base64EncodedImageContentByteArray));

  …

  message.setContent(rootContainer);

  message.setHeader(“MIME-Version”, “1.0”);

  message.setHeader(“Content-Type”, rootContainer.getContentType());

  …

  BodyPart createInlineImagePart(byte[] base64EncodedImageContentByteArray) throws MessagingException {

    InternetHeaders headers = new InternetHeaders();

    headers.addHeader(“Content-Type”, “image/jpeg”);

    headers.addHeader(“Content-Transfer-Encoding”, “base64”);

    MimeBodyPart imagePart = new MimeBodyPart(headers, base64EncodedImageContentByteArray);

    imagePart.setDisposition(MimeBodyPart.INLINE);

    imagePart.setContentID(“lt;imagegt;”);

    imagePart.setFileName(“image.jpg”);

    return imagePart;

用javamail写一个带正文和图片的发送邮件,在网上拷贝了代码,发现出一下错误,怎么回事

at mail.Demo3.main(Demo3.java:77)

Demo3.java 77行

有一个空指针异常,检查一下变量是否有控制住的可能或者再77打上断点,然后debug

JavaMail如何直接发送IO 流??

package com.cnal.job.common.util.mail;

import java.util.Date;

import java.util.Properties;

import javax.mail.Address;

import javax.mail.BodyPart;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.Multipart;

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;

public class MailSenderUtil {

/**

* 以文本格式发送邮件

* @param mailInfo 待发送的邮件的信息

*/

public boolean sendTextMail(MailInfo mailInfo) {

// 判断是否需要身份认证

MyAuthenticator authenticator = null;

Properties pro = mailInfo.getProperties();

if (mailInfo.isValidate()) {

// 如果需要身份认证,则创建一个密码验证器

authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());

}

// 根据邮件会话属性和密码验证器构造一个发送邮件的session

Session sendMailSession = Session.getDefaultInstance(pro,authenticator);

try {

// 根据session创建一个邮件消息

Message mailMessage = new MimeMessage(sendMailSession);

// 创建邮件发送者地址

Address from = new InternetAddress(mailInfo.getFromAddress());

// 设置邮件消息的发送者

mailMessage.setFrom(from);

// 创建邮件的接收者地址,并设置到邮件消息中

Address to = new InternetAddress(mailInfo.getToAddress());

mailMessage.setRecipient(Message.RecipientType.TO,to);

// 设置邮件消息的主题

mailMessage.setSubject(mailInfo.getSubject());

// 设置邮件消息发送的时间

mailMessage.setSentDate(new Date());

// 设置邮件消息的主要内容

String mailContent = mailInfo.getContent();

mailMessage.setText(mailContent);

// 发送邮件

Transport.send(mailMessage);

return true;

} catch (MessagingException ex) {

ex.printStackTrace();

}

return false;

}

/**

* 以HTML格式发送邮件

* @param mailInfo 待发送的邮件信息

*/

public boolean sendHtmlMail(MailInfo mailInfo){

// 判断是否需要身份认证

MyAuthenticator authenticator = null;

Properties pro = mailInfo.getProperties();

//如果需要身份认证,则创建一个密码验证器

if (mailInfo.isValidate()) {

authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());

}

// 根据邮件会话属性和密码验证器构造一个发送邮件的session

Session sendMailSession = Session.getDefaultInstance(pro,authenticator);

try {

// 根据session创建一个邮件消息

Message mailMessage = new MimeMessage(sendMailSession);

// 创建邮件发送者地址

Address from = new InternetAddress(mailInfo.getFromAddress());

// 设置邮件消息的发送者

mailMessage.setFrom(from);

// 创建邮件的接收者地址,并设置到邮件消息中

Address to = new InternetAddress(mailInfo.getToAddress());

// Message.RecipientType.TO属性表示接收者的类型为TO

mailMessage.setRecipient(Message.RecipientType.TO,to);

// 设置邮件消息的主题

mailMessage.setSubject(mailInfo.getSubject());

// 设置邮件消息发送的时间

mailMessage.setSentDate(new Date());

// MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象

Multipart mainPart = new MimeMultipart();

// 创建一个包含HTML内容的MimeBodyPart

BodyPart html = new MimeBodyPart();

// 设置HTML内容

html.setContent(mailInfo.getContent(), “text/html; charset=utf-8”);

mainPart.addBodyPart(html);

// 将MiniMultipart对象设置为邮件内容

mailMessage.setContent(mainPart);

// 发送邮件

Transport.send(mailMessage);

return true;

} catch (MessagingException ex) {

ex.printStackTrace();

}

return false;

}

}

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月24日 11:55:29
下一篇 2024年3月24日 11:59:36

相关推荐

  • excel选定图片对象,excel对象图标图片

    excel如何全选图片 1、全选图片打开EXCEL表格,在键盘上按下“ALT+A”,全选所有的图片。调大图片点击任意一个图片选择框上四个角落的小圆圈,往外拉动鼠标,所有的图片统一调大。 2、按住 Alt 键,再单击图片。也可以右击图片,然后在图片外空白区单击一下。在选中任一幅图片之后,按下组合键“Ctrl + A”,即可选中所有图片了。“Ctrl + A”,…

    2024年5月23日
    4800
  • 黑客技术学习图片转文字,黑客图片 专用

    最近有什么好看的小说 最近好看的小说有:《大奉打更人》、《诡秘之主》、《万族之劫》、《我师兄实在太稳健了》、《全球高武》等。《大奉打更人》简介:这个世界,有儒;有道;有佛;有妖;有术士。 《灿烂千阳》《追风筝的人》的作者的第二本小说,关于不可宽恕的时代,不可能的友谊以及不可毁灭的爱。 《我在精神病院学斩神》作者:三九音域 这本书最近真的太火了,一句“前方华夏…

    2024年5月23日
    4100
  • 有关网络安全的知识及图片,有关网络安全的知识及图片大全

    网络安全宣传知识内容 网络安全知识内容是:网络攻击、信息安全、不可抵赖性、网络内部安全防范措施、网络杀毒、网络数据备份、网络灾难恢复、信息传播安全、网络安全。 网络安全内容是:网络攻击、信息安全、不可抵赖性、网络内部安全防范措施、网络杀毒、网络数据备份、网络灾难恢复、信息传播安全、网络安全。 网络安全宣传标语 网络安全为人民,网络安全靠人民。没有网络安全,就…

    2024年5月23日
    3600
  • 网络安全宣传小知识图片,网络安全100个小知识

    网络安全的手抄报内容 1、充分利用网络便捷之利,坚决抵制网络低俗之风。网络提高知识的速度,文明提高生活的质量。尽网安之责,享网络之便。聚网络文明之风,传文明网络之行。网络安全同担,网络生活共享。 2、网络安全的手抄报内容如下:筑牢网络安全基石,成就网络强国梦想。网络社会法治社会,网络空间网警保卫。切实增强网络安全意识,共同提高识骗防骗能力。网络安全同担,网络…

    2024年5月23日
    4000
  • 女黑客学习励志图片,女黑客的头像

    一天内瘫痪3500台电脑,被罚3.5万美元,这名女黑客是什么来历呢?_百度… 当然这一次黑客事件也引发了轩然大波,导致芝加哥商品交易所单日集体恐慌式下跌。 Morris现在担任麻省理工电脑科学和人工智能实验室的教授,其研究方向是电脑网络的架构。 黑客原意是指用斧头砍柴的工人,最早被引进计算机圈则可追溯自1960年代。 通过电脑病毒甚至可以对核电站…

    2024年5月23日
    3600
  • 找黑客学习图片漫画,漫画黑客图片头像

    黑客初学者怎样入门 成为黑客的基础入门需要学习计算机编程、网络技术、操作系统、加密技术等相关知识。同时,需要具备好奇心、探索精神和解决问题的能力。想成为黑客,需要首先熟练掌握一种或多种编程语言,如Python、Java等。 对于零基础的朋友第一步要做的是掌握web前后端基础和服务器通讯原理,前后端包括h5,js,PHP,sql等等。 学习密码技术 作为一名优…

    2024年5月22日
    3700
  • 包含linuxhtml转图片不显示不出来的词条

    html编辑代码为什么图片显示不出来??请大家帮忙 1、html文件里面图片无法显示,原因如下:仔细检查图片这一块代码,是否写错了,比如多写了一个字符或者漏掉了一个字符。 2、html插入图片不显示的原因是系统一时故障导致的,具体解决方法步骤如下:首先,需要创建一个html。同时,需要创建一个CSS文档。CSS文档的后缀名必须为CSS,比如创建一个index…

    2024年5月22日
    3600
  • java服务器发送图片,java上传图片到ftp服务器

    java实现图片上传至服务器并显示,如何做? file inputstream outputstream ,基本上IO流章节实现,当然还有很多封装的jar包,网上去搜搜。 我们使用一些已有的组件帮助我们实现这种上传功能。 写个上传类,现在网上很多功能强大的flash上传插件,例如swfUpload,百度编辑器也自带上传功能。你如果想自己写一个上传类例如引用s…

    2024年5月22日
    4300
  • 关于增长黑客图片文案学习视频的信息

    怎样才能做好用户留存 理论上在做产品规划的时候就需要将各项买点数据定好,以方便后期分析用户与APP发生的所有交互行为,这种分析有助于产品/设计师发现用户的留存问题。 渠道精细化,选择高留存的渠道,选取学生喜爱的渠道进行营销,获取优质流量。名字和slogan通过各种宣发途径进行市场推广,让更多用户对产品产生品牌认知,了解产品形态,产生强烈品牌认同感。 接下来讲…

    2024年5月22日
    3400
  • 界面设计java,界面设计图片

    简述java程序设计中界面设计中的三种布局方式 GridPane面板 它采用的布局策略是:将整个面板划分为若干个格子,每个格子的大小是一样的,每个格子中可以放置一个控件,类似于表格的方式。 FlowLayout 流式布局管理器 按照组件的添加顺序将组件从左到右放置在容器中。 布局?Java GUI布局吧?AWT/Swing/SWT三种.AWT 概述 Abst…

    2024年5月22日
    3600

发表回复

登录后才能评论



关注微信