Java Mail

Java Mail

这里先介绍用Java Mail 类实现发送邮件,然后再介绍Commons Email组件实现发送简单邮件和带附件的邮件

首先到官网上下载 Java Mail 1.4.1
http://java.sun.com/products/javamail/index.html
添加mail.jar到用户库中, 然后构建邮件并发送
impoet javax.mail. * ;
Properties props
= new  Properties();
Session session
= Session.getInstance(props, null );
props.put(
" mail.host " , " 127.0.0.1 " );
props.put(
" mail.transport.protocol " , " smtp " );
Message message
= new  MimeMessage(session);
// message构建邮件内容,因为Message是抽象类,所以这里用它的子类MimeMessage
message.setForm( new  InternetAddress( " [email protected] " ));
message.setRecipient(Message.RecipientType.To,
new  InternetAddress( " [email protected] " ));
message.setSubject(
" Hello " );
message.setText(
" I love java " );
Transport.send(message);

Commons Email组件很好的封装了Java Mail 类,用起来更加方便,功能更强大
下载该组件,把commons-email-1.1.jar 加载到该应用中
用Servlet处理发邮件,在doPost()方法中添加如下代码:
request.setCharacterEnconding( " UTF-8 " );
SimpleEmail email
= new  SimpleEmail();
email.setHostName(
" smtp.sina.com " );
email.setAuthentication(
" username " , " password " );
// 这里设定一下邮件内容编码格式
email.setCharset( " UTF-8 " );
// request.getParameter()从提交的表单中获取信息
email.setFrom(request.getParameter( " from " ));
email.addTo(request.getParameter(
" to " ));
email.setSubjet(request.getPatameter(
" subject " ));
email.setMsg(request.getParameter(
" content " ));
email.send();

下面介绍带附件的邮件如何编写,实际上就是把上述两部分结合。
首先,表单里要有"file"域,在表单标签里添加 <Form enctype="multipart/form-data">
写一个方法getFile(),返回file类型,具体的内容请参加File Upload 那篇文章,先把文件存在web server的一个目录上,然后再发送
所不同的是,这次,构建一个MultiPartEmail email=new MultiPartEmail();
然后按上述代码添加好主题,内容等,需要注意的是,在getFile()中获取文件的时候,已经获取了表单域的信息,把这些信息存在一个HashMap中,然后通过email对象的方法添加这些信息时,直接从HashMap中获得即可
通过getFile()获得文件,然后
if (file != null )
{
  EmailAttachment att
= new  EmailAttachment();
  att.setPath(file.getPath());
  att.setDisposition(EmailAttachment.ATTACHMENT);
// 这里是附件的类型
 att.setName(file.getName());
  email.addattach(att);
}

你可能感兴趣的:(Java Mail)