Author:Rockay(刘其超,刘涛)
Page:http://www.cnblogs.com/Rockay Email:[email protected]注:有部分是参考网上资料。
接上次smtp邮件发送功能,这次用的是JAVAMail, 运行此程序还需三个Java包:mail.jar,activation.jar和htmlparser.jar。
下面介绍一下JAVAMail中一些基础类,信息如下:
Session类
Session类定义了一个基本的邮件会话。通过该会话可让别的工作顺利执行。Session对象利用java.util.Properties对象获取诸如邮件服务器、用户名、密码等信息,以及其他可在整个应用程序中共享的信息。
Message类
创建要发送的消息。
Address类
一旦创建了会话和消息,并为消息填充了内容,就需要用Address类为您的信件标上地址了。
Authenticator类
与java.net类一样,JavaMail API可以利用Authenticator(验证程序)类通过用户名和密码来访问受保护的资源。
Transport类
发送消息的最后一步操作是使用Transport类。该类使用特定于协议(通常是SMTP)的语言来发送消息。
代码示例如下:
抽象类:SendMail .JAVA
package gxa.sf.rockay; import java.io.File; import javax.activation.DataHandler; import org.htmlparser.Node; /** public String username = null; // 邮件发送帐号用户名 public String userpasswd = null; // 邮件发送帐号用户口令 public BodyPart messageBodyPart = null; public Multipart multipart = new MimeMultipart("related"); public MimeMessage mailMessage = null; public Session mailSession = null; public Properties mailProperties = System.getProperties(); public InternetAddress mailFromAddress = null; public InternetAddress mailToAddress = null; public Authenticator authenticator = null; public String mailSubject = ""; public Date mailSendDate = null; /** /** /** private ArrayList arrayList2 = new ArrayList(); public void setMailContent(String mailContent) // 处理html页面上的图片方法如下: // 处理要发送的html文件,主要是针对html文件中的图片 // 产生一个随机字符串,为了给图片设定Content-ID值 private final static String ISO8859_1 = "8859_1"; /** /** /** /** /** /** /** /** }
|
子类继承抽象类:
package gxa.sf.rockay; /** import java.util.Date; import javax.mail.MessagingException; public class LTMail extends SendMail { |
index.html页面
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>超超邮件系统</title> </head> <body bgcolor="#ffffff"> <form name="form1" action="send.jsp" method="POST" > <h1> 欢迎使用超超邮件系统</h1> <table width="75%" border="0" align="center"> <tr> <td colspan="3">请输入所有信息以发送邮件</td> </tr> <tr> <td> <input type='radio' name='radio' value='纯文本' checked="checked"> <input type='radio' name='radio' value='HTML'> </td> <tr> <td>邮件服务器:</td> <td><input name="mailserver" type="text" size="40" value="smtp.163.com"/></td> <td> </td> </tr> <tr> <td>邮箱账号:</td> <td><input name="mailID" type="text" size="40" value="luqichao178"/></td> <td> </td> </tr> <tr> <td>邮箱密码:</td> <td><input name="mailpwd" type="password" size="40" value=""/></td> <td> </td> </tr> <tr> <td>发件人:</td> <td><input name="mailfrom" type="text" size="40" value=""></td> <td> </td> </tr> <tr> <td>收件人:</td> <td><input name="mailto" type="text" size="40" value=""/></td> <td> </td> </tr> <tr> <td>抄送:</td> <td><input name="mailcopy" type="text" size="40" value=""/></td> <td> </td> </tr> <tr> <td>暗抄:</td> <td><input name="mailbc" type="text" size="40" value=""/></td> <td> </td> </tr> <tr> <td>主题:</td> <td><input name="subject" type="text" size="40" value=""/></td> <td> </td> </tr> <tr> <td>内容:</td> <td> <textarea name="content" rows="20" cols="100"> <H1>Hello Rockay:</H1> <img src="G:/Software Park Photos/cs.gif"/> </textarea> </td> <td> </td> </tr> </table> <p> <p> <center><input type="submit" name="提交"/> </form> </body> </html> |
send.jsp页面
<%@ page language="java" contentType="text/html; charset=gb2312" pageEncoding="gb2312"%> <%@ page import= "gxa.sf.rockay.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>Insert title here</title> </head> <body> <% String mailFrom =new String(request.getParameter("mailfrom").getBytes("ISO-8859-1"),"GB2312"); //发送者,防止乱码 String mailHost = new String(request.getParameter("mailserver").getBytes("ISO-8859-1"),"GB2312"); //发送邮件服务器地址 String mailUser = new String(request.getParameter("mailID").getBytes("ISO-8859-1"),"GB2312"); //发送邮件服务器的用户帐号 String mailPassword = request.getParameter("mailpwd"); //发送邮件服务器的用户密码 String ToAddresses=request.getParameter("mailto"); boolean flag; String type = request.getParameter("radio"); if(type.equals("HTML")){ flag=true; }else{ flag = false; } String[] toAddress = ToAddresses.split(";"); String CopyAddresses=request.getParameter("mailcopy"); String[] ccAddress=CopyAddresses.split(";"); String BcAddresses=request.getParameter("mailbc"); String[] bcAddress=BcAddresses.split(";"); String title=new String(request.getParameter("subject").getBytes("ISO-8859-1"),"GB2312"); String content=new String(request.getParameter("content").getBytes("ISO-8859-1"),"GB2312"); LTMail ltmail = new LTMail(mailHost,mailUser,mailPassword); String message = ""; message = ltmail.Send(mailFrom,mailHost,mailUser,mailPassword,toAddress,ccAddress,bcAddress,title,content,flag); out.println("<center><h1>"+message+"</h1>"); %> </body> </html> |
好了,代码太多,可能看起来有点痛苦,有需要的可以EMAIL:[email protected]