说明:1。本实例需要用到javamail-1.4.3和jaf-1_0_2-upd2。附件中有它们的下载,关于它们的介绍可以去google一下。
2。使用javaMail需要一个邮件服务器,我使用的是cmail,它很小,试用版的可以用于学习,按装之前请确保你装了IIS服务,因为它自带有一个.NET写的邮件服务。在下面附件中可以下载。
一:简单的邮件发送
<form action="SendText" method="post">
<table border="0" align="center" width="80%">
<tr>
<td align="right">From:</td>
<td>
<input type="text" name="from">
</td>
</tr>
<tr>
<td align="right">To:</td>
<td>
<input type="text" name="to">
</td>
</tr>
<tr>
<td align="right">Subject:</td>
<td>
<input type="text" name="subject">
</td>
</tr>
<tr>
<td align="right">Context:</td>
<td>
<textarea rows="5" cols="30" name="context"></textarea>
</td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="submit" value="发送">
</td>
</tr>
</table>
</form>
Servlet如下:
/**
* 使用javaMail发送简单的邮件
*
* @author 张明学
*
*/
public class SendText extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 7107039219761248959L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("GBK");
String from = request.getParameter("from");
String to = request.getParameter("to");
String subject = request.getParameter("subject");
String context = request.getParameter("context");
// 发送的邮件服务器的地址
String mailServer = "PC200904071715";//按装cmail就是你的机器名
Properties prop = System.getProperties();
// 设置邮件的传输协议
prop.put("mail.transport.protocal", "smtp");
prop.put("mail.smtp.host", mailServer);
prop.put("mail.smtp.port", "25");
// 是否通过验证;一般为true,false不能通过验证
prop.put("mail.smtp.auth", "false");
// 建立邮件发送的连接
// Session 类定义了一个基本邮件会话(session)。所有其它类都是经由这个session 才得以生效。
// Session 对象用 java.util.Properties 对象获取信息,如邮件服务器、用户名、密码及整个应用程序中共享的其它信息。
// Session类的构造器是私有的(private)。您可以得到单个缺省 session,它能用 getDefaultInstance() 方法被共享:
// 或者,您还可以用 getInstance() 创建一个独立的 session:
Session jmailSession = Session.getDefaultInstance(prop,
new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
//需要邮件服务器的管理员账号与密码
return new PasswordAuthentication("admin", "");
}
});
// 创建要发送的消息,这由 Message 类来完成。因为 Message 是个抽象类,必需用一个子类,多数情况下为 javax.mail.internet.MimeMessage。
Message jmailMessage = new MimeMessage(jmailSession);
// 设置相关的邮件属性
try {
// Address 确定信件地址,Address是个抽象类,用的是javax.mail.internet.InternetAddress
// 若希望名字紧挨着电子邮件显示,也可以把它传递给构造器:jmailMessage.setFrom(new InternetAddress(from,"admin"));
jmailMessage.setFrom(new InternetAddress(from));
/**
* javax.mail.Message.RecipientType.TO:一对一的发送
* javax.mail.Message.RecipientType.CC:抄送
* javax.mail.Message.RecipientType.BCC:秘密抄送
*/
jmailMessage.setRecipient(javax.mail.Message.RecipientType.TO,new InternetAddress(to));
// 用setSubject()方法设置 subject(主题)
jmailMessage.setSubject(subject);
jmailMessage.setSentDate(new Date());
// 使用 MimeMessage,而且消息是纯文本格式,您就可以用 setText() 方法,它只需要代表实际内容的参数,( MIME 类型缺省为 text/plain)
jmailMessage.setText(context);
// 邮件发送
// 消息发送的最后一部分是使用Transport类。这个类用协议指定的语言发送消息(通常是 SMTP)。它是抽象类,仅调用静态send()方法
Transport.send(jmailMessage);
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
// request.getRequestDispatcher("ok.jsp").forward(request, response);
response.sendRedirect("ok.jsp");
}
}
HTML格式的邮件发送:
<form action="SendHtml" method="post">
<table border="0" align="center" width="80%">
<tr>
<td align="right">From:</td>
<td>
<input type="text" name="from">
</td>
</tr>
<tr>
<td align="right">To:</td>
<td>
<input type="text" name="to">
</td>
</tr>
<tr>
<td align="right">Subject:</td>
<td>
<input type="text" name="subject">
</td>
</tr>
<tr>
<td align="right">Context:</td>
<td>
<textarea rows="5" cols="30" name="context"></textarea>
</td>
</tr>
<tr>
<td align="right">格式:</td>
<td>
<select name="type">
<option value="text/plain">文本格式</option>
<option value="text/html">HTML格式</option>
</select>
</td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="submit" value="发送">
</td>
</tr>
</table>
</form>
Servlet如下:
public class SendHtml extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = -8794915632056125770L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("GBK");
String from = request.getParameter("from");// 发件人
String to = request.getParameter("to");// 收件人
String subject = request.getParameter("subject");// 主题
String context = request.getParameter("context");// 内容
String type = request.getParameter("type");
// 邮件服务器的地址
String mailServer = "PC200904071715";
// 设置邮件的传输协议信息
Properties transProp = System.getProperties();
// 邮件服务器地址
transProp.put("mail.smtp.host", mailServer);
// 邮件传输协议中的接收协议:smtp
transProp.put("mail.transport.protocol", "smtp");
// 是否通过验证
transProp.put("mail.smtp.auth", "true");
// 服务器端口
transProp.put("mail.smtp.port", "25");// 默认端口25
// 建立邮件发送的连接
javax.mail.Session mailSession = javax.mail.Session.getDefaultInstance(
transProp, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("admin", "");
}
});
// 邮件信息载体
javax.mail.Message mailMessage = new javax.mail.internet.MimeMessage(mailSession);
try {
// 设置发件人
mailMessage.setFrom(new InternetAddress(from));
// 设置收件人
mailMessage.setRecipient(RecipientType.TO, new InternetAddress(to));
// 多个收件人设置
// InternetAddress[] addresss = new InternetAddress[]{new InternetAddress(to)};
// mailMessage.setRecipients(RecipientType.TO, addresss);
// 设置主题
mailMessage.setSubject(subject);
// 发送时间
mailMessage.setSentDate(new Date());
Multipart mp = new MimeMultipart();
MimeBodyPart mbp = new MimeBodyPart();
mbp.setContent(context, type+";charset=GB2312");
mp.addBodyPart(mbp);
mailMessage.setContent(mp);
javax.mail.Transport.send(mailMessage);
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
response.sendRedirect("ok.jsp");
}
}
分享到:
相关推荐
JavaMail 是一个强大的开源库,专门用于在Java应用程序中发送和接收电子邮件。它提供了丰富的API,使得开发者可以方便地处理SMTP、POP3和IMAP等邮件协议。在JavaMail中,我们可以实现各种复杂的邮件功能,如添加附件...
实例部分提供了两个实际的应用程序,这些应用程序演示了如何使用JavaMail API发送邮件。每个实例都有一个测试用的main方法,这使得用户可以直接运行代码并观察结果。这对于学习和调试非常有用。通过阅读和运行这些...
本教程将详细讲解如何使用JavaMail API在Gmail上发送邮件,包括不带附件和带有一个附件的情况。 首先,JavaMail是一个开源的Java库,它提供了用于处理邮件的标准API。在使用JavaMail发送邮件前,你需要在项目中引入...
这个基础教程将引导你逐步了解如何使用JavaMail API进行邮件操作。 1. **JavaMail简介** JavaMail API是Java平台上处理邮件的核心库,它包含了多个接口和类,如`Session`, `Message`, `Multipart`和`Address`等,...
JavaMail 是一个开源的 Java 库,用于在 Java 应用程序中实现电子邮件的发送和接收。这个库提供了丰富的 API,使得开发者可以方便地处理 SMTP、POP3 和 IMAP 协议,从而实现电子邮件的全面功能。在JavaMail中,我们...
本教程将通过一个实例详细介绍如何使用JavaMail API发送邮件。首先,我们需要了解JavaMail API的基本概念和它的核心组件。 JavaMail API是一个用于处理邮件的开源Java库,它允许开发者在Java应用中创建、发送、接收...
一、Javamail基础 JavaMail是Java平台上的一个开源库,它提供了在Java应用程序中发送和接收电子邮件的能力。通过JavaMail API,开发者可以方便地与SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息...
要使用JavaMail发送邮件,你需要配置一个`Session`对象,它是所有邮件操作的基础。这个对象包含了连接到邮件服务器所需的属性,如SMTP服务器地址、端口号、用户名和密码。你可以通过`Properties`类来设置这些属性,...
总之,“简单的JavaMail”项目提供了一个基础的教程,帮助开发者了解如何在Java应用程序中利用JavaMail API发送包含文本和图像的群发邮件。通过阅读和理解提供的源代码,你可以深入了解这个过程,并扩展到更复杂的...
JavaMail是一种广泛使用的Java库,用于处理电子邮件的发送和接收。在Java应用程序中实现邮件接收功能,JavaMail是必不可少的工具。本教程将详细介绍如何利用JavaMail API来接收邮件。 首先,我们需要理解JavaMail的...
这个“简单javamail的实现(HelloWorld)”的教程将引导我们通过创建一个基础的JavaMail应用,这通常被称为“HelloWorld”示例,因为它标志着我们对JavaMail API的初步理解和使用。 JavaMail API 提供了广泛的类和...
- 使用JavaMail API发送和读取邮件。 - 处理发送和接收附件。 - 处理HTML格式的消息。 - 使用搜索术语来查找邮件。 ##### 先决条件 本课程包含了如何下载和安装JavaMail API的指导。此外,你需要一个开发环境,如...
3. 创建Message:使用Session对象创建一个Message实例,这代表你要发送的邮件。你可以设置发件人、收件人、主题和邮件内容。 4. 添加附件:通过MimeBodyPart和Multipart类,你可以添加多种类型的附件。MimeBodyPart...
JavaMail API是Java编程语言中用于处理邮件的接口和类库,它允许开发人员在Java应用程序中发送、接收和管理电子邮件。本教程将深入探讨JavaMail API的基础知识,包括其核心概念、组件以及如何实际应用。 JavaMail ...
本教程将深入讲解如何使用Java实现邮件发送功能,并提供相关的源码和jar包。 1. **JavaMail API**: JavaMail API 是Java平台上用于处理电子邮件的主要库,它提供了一系列的接口和类,使得开发者能够方便地创建、...
这些类构成了JavaMail API的基础架构,了解它们的功能和使用方法对于开发邮件应用至关重要。例如,Session类用于管理邮件会话,Store类代表邮件服务器的连接,Folder类封装了邮件文件夹的概念,而Message类则是表示...
这个教程“Java邮件开发(4)_邮件开发中问题汇总”聚焦于在实际应用中遇到的问题及其解决方案。以下是一些关键的知识点: 1. **JavaMail API**: JavaMail API是Java平台上的一个标准接口,它提供了一组API来处理...
**在JSP中使用JavaMail** 是一个常见的Web开发任务,尤其对于那些需要发送自动通知、确认邮件或者用户注册验证的Web应用来说。JavaMail API是Java平台上的一个开源库,它提供了处理邮件协议(如SMTP、POP3、IMAP)的...