[收藏]JavaMail - 发送HTML邮件

JavaMail - 发送HTML邮件

form.htm
========
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>邮件例程 - JavaMail - 发送HTML邮件</title>
</head>

<body>

<table border="0" cellspacing="0" cellpadding="0">
<form method="post" action="send.jsp">
<tr>
<td>SMTP主机:</td>
<td><input type="text" name="smtp" size="80"></td>
</tr>
<tr>
<td>发信人:</td>
<td><input type="text" name="from" size="80"></td>
</tr>
<tr>
<td>收信人:</td>
<td><input type="text" name="to" size="80"></td>
</tr>
<tr>
<td>抄送人:</td>
<td><input type="text" name="cc" size="80"></td>
</tr>
<tr>
<td>暗送人:</td>
<td><input type="text" name="bcc" size="80"></td>
</tr>
<tr>
<td>主题:</td>
<td><input type="text" name="subject" size="80"></td>
</tr>
<tr>
<td valign="top">内容:</td>
<td><textarea name="body" rows="5" cols="80"></textarea></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="发送"></td>
</tr>
</form>
</table>

</body>
</html>

send.jsp
========
<%--
作者:何志强[hhzqq@21cn.com]
日期:2000-08-16
版本:1.0
功能:邮件例程 - JavaMail - 发送HTML邮件
--%>

<%
//变量声明
java.lang.String smtp,from,to,cc,bcc,subject,body;

//获得用户输入数据
smtp = request.getParameter("smtp");
from = request.getParameter("from");
to = request.getParameter("to");
cc = request.getParameter("cc");
bcc = request.getParameter("bcc");
subject = request.getParameter("subject");
if(subject!=null){
subject = new java.lang.String(subject.getBytes("iso-8859-1"));
}
body = request.getParameter("body");

//发送邮件
pipi.mail.HTML.send(smtp,from,to,cc,bcc,subject,body);
%>

pipi.jaf.StringDataSource.java
==============================
/*
作者:何志强[hhzqq@21cn.com]
日期:2000-08-16
功能:字符串型数据源
*/

package pipi.jaf;

public class StringDataSource implements javax.activation.DataSource{
private java.lang.String data;
private java.lang.String type;

public StringDataSource(java.lang.String data,java.lang.String type){
this.data = data;
this.type = type;
}

public java.io.InputStream getInputStream() throws java.io.IOException{
return new java.io.StringBufferInputStream(data);
}

public java.io.OutputStream getOutputStream() throws java.io.IOException{
throw new java.io.IOException("it does not support this method now!");
}

public java.lang.String getContentType(){
return type;
}

public java.lang.String getName(){
return "pipi";
}
}

pipi.mail.HTML.java
===================
/*
作者:何志强[hhzqq@21cn.com]
日期:2000-08-16
功能:发送HTML邮件
*/

package pipi.mail;

public final class HTML{
public static void send(
java.lang.String smtp, /*SMTP主机地址*/
java.lang.String from, /*发信人*/
java.lang.String to, /*收信人*/
java.lang.String cc, /*抄送人*/
java.lang.String bcc, /*暗送人*/
java.lang.String subject, /*主题*/
java.lang.String body /*内容*/
) throws java.lang.Exception{
//变量声明
java.util.Properties props; //系统属性
javax.mail.Session mailSession; //邮件会话对象
javax.mail.internet.MimeMessage mimeMsg; //MIME邮件对象

//设置系统属性
props = java.lang.System.getProperties(); //获得系统属性对象
props.put("mail.smtp.host",smtp); //设置SMTP主机

//获得邮件会话对象
mailSession = javax.mail.Session.getDefaultInstance(props,null);

//创建MIME邮件对象
mimeMsg = new javax.mail.internet.MimeMessage(mailSession);

//设置发信人
mimeMsg.setFrom(new javax.mail.internet.InternetAddress(from));

//设置收信人
if(to!=null){
mimeMsg.setRecipients(javax.mail.Message.RecipientType.TO,

javax.mail.internet.InternetAddress.parse(to));
}

//设置抄送人
if(cc!=null){
mimeMsg.setRecipients(javax.mail.Message.RecipientType.CC,

javax.mail.internet.InternetAddress.parse(cc));
}

//设置暗送人
if(bcc!=null){
mimeMsg.setRecipients(javax.mail.Message.RecipientType.BCC,

javax.mail.internet.InternetAddress.parse(bcc));
}

//设置邮件主题
//mimeMsg.setSubject(subject);
mimeMsg.setSubject(subject,"gb2312");

//设置邮件内容
mimeMsg.setDataHandler(new javax.activation.DataHandler

(new pipi.jaf.StringDataSource(body,"text/html")));

//发送邮件
javax.mail.Transport.send(mimeMsg);
}
}

本套程序使用到JavaMail和JAVABEANS(TM) ACTIVATION FRAMEWORK(JAF):
  JavaMail
    http://java.sun.com/products/javamail/
  JAVABEANS(TM) ACTIVATION FRAMEWORK(JAF)
    http://java.sun.com/products/javabeans/glasgow/jaf.html



JavaMail - 发送HTML邮件

form.htm
========
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>邮件例程 - JavaMail - 发送HTML邮件</title>
</head>

<body>

<table border="0" cellspacing="0" cellpadding="0">
<form method="post" action="send.jsp">
<tr>
<td>SMTP主机:</td>
<td><input type="text" name="smtp" size="80"></td>
</tr>
<tr>
<td>发信人:</td>
<td><input type="text" name="from" size="80"></td>
</tr>
<tr>
<td>收信人:</td>
<td><input type="text" name="to" size="80"></td>
</tr>
<tr>
<td>抄送人:</td>
<td><input type="text" name="cc" size="80"></td>
</tr>
<tr>
<td>暗送人:</td>
<td><input type="text" name="bcc" size="80"></td>
</tr>
<tr>
<td>主题:</td>
<td><input type="text" name="subject" size="80"></td>
</tr>
<tr>
<td valign="top">内容:</td>
<td><textarea name="body" rows="5" cols="80"></textarea></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="发送"></td>
</tr>
</form>
</table>

</body>
</html>

send.jsp
========
<%--
作者:何志强[hhzqq@21cn.com]
日期:2000-08-16
版本:1.0
功能:邮件例程 - JavaMail - 发送HTML邮件
--%>

<%
//变量声明
java.lang.String smtp,from,to,cc,bcc,subject,body;

//获得用户输入数据
smtp = request.getParameter("smtp");
from = request.getParameter("from");
to = request.getParameter("to");
cc = request.getParameter("cc");
bcc = request.getParameter("bcc");
subject = request.getParameter("subject");
if(subject!=null){
subject = new java.lang.String(subject.getBytes("iso-8859-1"));
}
body = request.getParameter("body");

//发送邮件
pipi.mail.HTML.send(smtp,from,to,cc,bcc,subject,body);
%>

pipi.jaf.StringDataSource.java
==============================
/*
作者:何志强[hhzqq@21cn.com]
日期:2000-08-16
功能:字符串型数据源
*/

package pipi.jaf;

public class StringDataSource implements javax.activation.DataSource{
private java.lang.String data;
private java.lang.String type;

public StringDataSource(java.lang.String data,java.lang.String type){
this.data = data;
this.type = type;
}

public java.io.InputStream getInputStream() throws java.io.IOException{
return new java.io.StringBufferInputStream(data);
}

public java.io.OutputStream getOutputStream() throws java.io.IOException{
throw new java.io.IOException("it does not support this method now!");
}

public java.lang.String getContentType(){
return type;
}

public java.lang.String getName(){
return "pipi";
}
}

pipi.mail.HTML.java
===================
/*
作者:何志强[hhzqq@21cn.com]
日期:2000-08-16
功能:发送HTML邮件
*/

package pipi.mail;

public final class HTML{
public static void send(
java.lang.String smtp, /*SMTP主机地址*/
java.lang.String from, /*发信人*/
java.lang.String to, /*收信人*/
java.lang.String cc, /*抄送人*/
java.lang.String bcc, /*暗送人*/
java.lang.String subject, /*主题*/
java.lang.String body /*内容*/
) throws java.lang.Exception{
//变量声明
java.util.Properties props; //系统属性
javax.mail.Session mailSession; //邮件会话对象
javax.mail.internet.MimeMessage mimeMsg; //MIME邮件对象

//设置系统属性
props = java.lang.System.getProperties(); //获得系统属性对象
props.put("mail.smtp.host",smtp); //设置SMTP主机

//获得邮件会话对象
mailSession = javax.mail.Session.getDefaultInstance(props,null);

//创建MIME邮件对象
mimeMsg = new javax.mail.internet.MimeMessage(mailSession);

//设置发信人
mimeMsg.setFrom(new javax.mail.internet.InternetAddress(from));

//设置收信人
if(to!=null){
mimeMsg.setRecipients(javax.mail.Message.RecipientType.TO,

javax.mail.internet.InternetAddress.parse(to));
}

//设置抄送人
if(cc!=null){
mimeMsg.setRecipients(javax.mail.Message.RecipientType.CC,

javax.mail.internet.InternetAddress.parse(cc));
}

//设置暗送人
if(bcc!=null){
mimeMsg.setRecipients(javax.mail.Message.RecipientType.BCC,

javax.mail.internet.InternetAddress.parse(bcc));
}

//设置邮件主题
//mimeMsg.setSubject(subject);
mimeMsg.setSubject(subject,"gb2312");

//设置邮件内容
mimeMsg.setDataHandler(new javax.activation.DataHandler

(new pipi.jaf.StringDataSource(body,"text/html")));

//发送邮件
javax.mail.Transport.send(mimeMsg);
}
}

本套程序使用到JavaMail和JAVABEANS(TM) ACTIVATION FRAMEWORK(JAF):
  JavaMail
    http://java.sun.com/products/javamail/
  JAVABEANS(TM) ACTIVATION FRAMEWORK(JAF)
    http://java.sun.com/products/javabeans/glasgow/jaf.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
发送 HTML 格式的邮件,需要使用 JavaMail API 中的 MimeMessage 和 MimeMultipart 类。下面是一个简单的样例代码: ```java import java.util.Properties; import javax.mail.*; import javax.mail.internet.*; public class SendHtmlEmail { public static void main(String[] args) { String to = "recipient@example.com"; // 收件人邮件地址 String from = "sender@example.com"; // 发件人邮件地址 String host = "smtp.example.com"; // SMTP 服务器地址 // 设置邮件会话的属性 Properties properties = System.getProperties(); properties.setProperty("mail.smtp.host", host); // 获取默认的 Session 对象 Session session = Session.getDefaultInstance(properties); try { // 创建一个默认的 MimeMessage 对象 MimeMessage message = new MimeMessage(session); // 设置 From: 头部头字段 message.setFrom(new InternetAddress(from)); // 设置 To: 头部头字段 message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 设置邮件主题 message.setSubject("HTML 邮件"); // 创建一个 Multipart 消息对象 Multipart multipart = new MimeMultipart(); // 创建一个 MimeBodyPart 对象,包含 HTML 内容 BodyPart htmlBodyPart = new MimeBodyPart(); String htmlContent = "<h1>这是一封 HTML 邮件</h1><p>这是邮件的正文内容。</p>"; htmlBodyPart.setContent(htmlContent, "text/html"); // 将 HTML 内容添加到 Multipart 消息对象中 multipart.addBodyPart(htmlBodyPart); // 将 Multipart 消息对象设置为邮件内容 message.setContent(multipart); // 发送邮件 Transport.send(message); System.out.println("邮件发送。"); } catch (MessagingException mex) { mex.printStackTrace(); } } } ``` 在上面的代码中,我们首先设置了邮件会话的属性,包括 SMTP 服务器地址。然后获取默认的 Session 对象。 接着,创建一个 MimeMessage 对象,并设置发件人、收件人和邮件主题。我们还创建了一个 Multipart 消息对象,并将 HTML 内容添加到其中。最后,将 Multipart 消息对象设置为邮件内容,并发送邮件。 需要注意的是,发送邮件的过程可能需要进行身份验证。如果需要身份验证,可以通过设置 Session 对象的属性来指定身份验证相关的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

3cts

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值