JSP与JavaMail(5)---发送三种类型的附件

原创 2003年09月23日 23:42:00

6.发送三种类型的附件

前面我们已学会了发送一般文本邮件和超文本邮件,今天我们将让大家学会编写三种类型的附件的邮件
发送程序.(注:撰写界面仍然用前面的)

<%@ page contentType="text/html;charset=GB2312" %>
<%request.setCharacterEncoding("gb2312");%>
<%@ page import="java.util.*,javax.mail.*"%>
<%@ page import="javax.mail.internet.*"%>
<%@ page import="javax.activation.*"%><!--要发送附件必须引入该库-->
<%@ page import="java.net.*"%><!--要用到URL类-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>发送成功</title>
</head>
<body>
<%
try{
String tto=request.getParameter("to");
String ttitle=request.getParameter("title");
String tcontent=request.getParameter("content");
Properties props=new Properties();
props.put("mail.smtp.host","127.0.0.1");
props.put("mail.smtp.auth","true");
Session s=Session.getInstance(props);
s.setDebug(true);

MimeMessage message=new MimeMessage(s);

//给消息对象设置发件人/收件人/主题/发信时间
InternetAddress from=new InternetAddress("xxf@cafe.com");
message.setFrom(from);
InternetAddress to=new InternetAddress(tto);
message.setRecipient(Message.RecipientType.TO,to);
message.setSubject(ttitle);
message.setSentDate(new Date());

Multipart mm=new MimeMultipart();//新建一个MimeMultipart对象用来存放多个BodyPart对象

//设置信件文本内容
BodyPart mdp=new MimeBodyPart();//新建一个存放信件内容的BodyPart对象
mdp.setContent(tcontent,"text/html;charset=gb2312");//给BodyPart对象设置内容和格式/编码方式
mm.addBodyPart(mdp);//将含有信件内容的BodyPart加入到MimeMultipart对象中

//设置信件的附件1(自定义附件:直接将所设文本内容加到自定义文件中作为附件发送)
mdp=new MimeBodyPart();//新建一个存放附件的BodyPart
DataHandler dh=new DataHandler("JavaMail附件测试","text/plain;charset=gb2312");
//新建一个DataHandler对象,并设置其内容和格式/编码方式
mdp.setFileName("xxf.txt");//加上这句将作为附件发送,否则将作为信件的文本内容
mdp.setDataHandler(dh);//给BodyPart对象设置内容为dh
mm.addBodyPart(mdp);//将含有附件的BodyPart加入到MimeMultipart对象中

//设置信件的附件2(用本地上的文件作为附件)
mdp=new MimeBodyPart();
FileDataSource fds=new FileDataSource("g:/xx.txt");
dh=new DataHandler(fds);
mdp.setFileName("dd.txt");//可以和原文件名不一致
mdp.setDataHandler(dh);
mm.addBodyPart(mdp);

//设置信件的附件3(用远程文件作为附件)
mdp=new MimeBodyPart();
URLDataSource ur=new URLDataSource(new URL("http://localhost:8080/jspstudy/email/xx.gif"));
//注:这里用的参数只能为URL对象,不能为URL字串,在前面类介绍时有误(请谅解),这里纠正一下.
dh=new DataHandler(ur);
mdp.setFileName("ss.txt");
mdp.setDataHandler(dh);
mm.addBodyPart(mdp);

message.setContent(mm);//把mm作为消息对象的内容

message.saveChanges();
Transport transport=s.getTransport("smtp");
transport.connect("127.0.0.1","xxf","coffee");
transport.sendMessage(message,message.getAllRecipients());
transport.close();
%>
<div align="center">
<p><font color="#FF6600">发送成功!</font></p>
<p><a href="recmail.jsp">去看看我的信箱</a><br>
<br>
<a href="index.htm">再发一封</a> </p>
</div>
<%
}catch(MessagingException e){
out.println(e.toString());
}
%>
</body>
</html>

发送附件是不是很有趣呢?但是在这里由于没有修改撰写界面,要发送的附件只能在程序里固定,所以一点都不灵活.不用担心,下一次我们将重写撰写界面,当然同时也会修改邮件处理程序,到时我们将能灵活地发送自己的邮件.

(待续)

JavaMail发送带附件的电子邮件示例

/** * CrazyItTest * 使用JavaMail发送带附件的电子邮件示例 */ package com.labci.javamail.test; import java.i...
  • tujiyue
  • tujiyue
  • 2011年05月26日 21:52
  • 4178

使用javaMail来发送和接收带附件的邮件

使用javaMail发送(文本支持HTML)邮件   内容为HTML网页的邮件叫做HTML型邮件,它与文本型邮件的主要区别在于MIME类型的不同,一个为“text/html”,一个为“text/p...
  • wenjie4892543
  • wenjie4892543
  • 2014年01月15日 16:33
  • 1083

javamail邮件发送,带附件发送

package com.frame.util; import java.util.Date; import java.util.Enumeration; import java.util.Prope...
  • xunwei0303
  • xunwei0303
  • 2017年04月05日 20:44
  • 615

Java Mail---SMTP协议-Java发邮件(带附件)演示过程

转载请注明出处: http://blog.csdn.net/qq_26525215 本文源自【大学之旅_谙忆的博客】 JavaMail-API简介:邮件客户端的主要任务是向邮件服务器发送邮件,以及接收...
  • qq_26525215
  • qq_26525215
  • 2016年08月21日 14:07
  • 3192

JavaMail发送邮件(普通邮件,html邮件以及附件邮件)

实现普通邮件,html邮件以及附件邮件的发送;此例子使用的是163邮箱 邮箱的服务地址,邮件用户名密码在配置文件中读取;...
  • shfei10100
  • shfei10100
  • 2013年12月25日 16:08
  • 7824

java发送邮件带附件

import java.io.File; import java.util.Date; import java.util.Properties; import javax.activation.Da...
  • hfmbook
  • hfmbook
  • 2014年06月03日 17:52
  • 10654

javamail附加附件怎么获取绝对路径

这段时间编写一个小程序发送邮件,邮件是把正文和附件合成一个eml文件再发送出去的。加载附件,需要输入流,也就需要知道文件绝对路径了。但是在jsp的环境下,都是以服务器为前提的,在后端编写获取的文件地址...
  • u011439289
  • u011439289
  • 2013年08月09日 21:17
  • 1521

javamail发送复杂邮件(包含文本、图片、附件)

上一篇文章介绍了如何进行简单文本邮件的传输,相信阅读的人都能看懂并收获不少。其实编程这件事情,很多时候就是你听起来一个功能的实现好像很难,但当你着手去实现,去研究他的实现过程的时候就会发现其实也没有想...
  • wuyjcsdn
  • wuyjcsdn
  • 2017年04月01日 10:01
  • 493

Java Mail 发送邮件(带附件)简单示例

背景 最近项目中涉及到发送邮件功能,也参照了很多学习资料,现将Demo例子分享一下,当作记录,也使更多人能更快使用. 本篇不涉及原理内容,如果有需要,后续补充讨论. 所需jar包 mail-1.4....
  • YY_WG
  • YY_WG
  • 2016年10月19日 16:28
  • 2207

java邮件自动发送时添加网络附件

查了很多资料都是使用本地资源作为附件发送。但是遇到资源在数据服务器上时,怎么在发送邮件时添加附件吗?先下载资源,然后发送邮件,再删除附件?...
  • shuzl213
  • shuzl213
  • 2017年02月18日 20:30
  • 661
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JSP与JavaMail(5)---发送三种类型的附件
举报原因:
原因补充:

(最多只允许输入30个字)