Java Mail的使用
一.用于进行用户认证的类(PopupAuthenticator):
import javax.mail.*;
public class PopupAuthenticator extends Authenticator{
String username=null;
String password=null;
public PopupAuthenticator(String user, String pass) {
username = user;
password = pass;
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
}
二.用于封装发送邮件的用户信息的类(MailuserInfo):
public class MailuserInfo {
private int id;
//邮件服务器地址
private String host;
//一定要是有效的Email地址(否则无法通过认证)
private String from;
//邮件服务器用户认证
private String user;
private String password;
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
三.用于封装具体邮件信息的类(MailEntry):
public class MailEntry {
//抄送的地址
private String cc;
//发送的地址
private String to;
//邮件主题
private String title;
//邮件附件
private String file;
//邮件正文
private String content;
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getTo() {
return to;
}
public void setTo(String to) {
this.to = to;
}
public String getFile() {
return file;
}
public void setFile(String file) {
this.file = file;
}
public String getCc() {
return cc;
}
public void setCc(String cc) {
this.cc = cc;
}
}
四.用于实现发送邮件功能的类(MailUtil):
import java.io.File;
import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class MailUtil {
public static void send(MailuserInfo info,MailEntry entry)
{
try {
Properties properties = System.getProperties();
//邮件服务器
properties.put("mail.smtp.host", info.getHost());
//设置邮件发送协议
properties.put("mail.transport.protocol", "smtp");
//进行用户认证
properties.put("mail.smtp.auth","true");
//邮件服务器用户认证
PopupAuthenticator popAuthenticator = new PopupAuthenticator(info.getUser(),info.getPassword());
Session session = Session.getDefaultInstance(properties, popAuthenticator);
session.setDebug(false);
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(info.getFrom()));
InternetAddress[] addresses = null;//{ new InternetAddress(entry.getTo()) };
String[] toArrays = entry.getTo().split(",");
addresses = new InternetAddress[toArrays.length];
for (int i = 0; i < toArrays.length; i++) {
addresses[i] = new InternetAddress(toArrays[i]);
System.out.println("发送的地址为:" + toArrays[i]);
}
if(entry.getCc() != null && (!"".equals(entry.getCc())))
{
String[] ccArrays = entry.getCc().split(",");
InternetAddress[] addresscc = new InternetAddress[ccArrays.length];
for (int i = 0; i < ccArrays.length; i++) {
addresscc[i] = new InternetAddress(ccArrays[i]);
System.out.println("抄送的地址为:" + ccArrays[i]);
}
msg.setRecipients(Message.RecipientType.CC, addresscc);
}
//设置邮件接收方的地址
msg.setRecipients(Message.RecipientType.TO, addresses);
//设置邮件主题
msg.setSubject(entry.getTitle());
//设置邮件发送日期
msg.setSentDate(new Date());
//邮件内容,附件等内容均添加到其中后再生成MimeMessage对象
Multipart multipart = new MimeMultipart();
//设置邮件正文
if(entry.getContent() != null)
{
System.out.println("设置邮件正文:" + entry.getContent());
BodyPart body = new MimeBodyPart();
body.setText(entry.getContent());
multipart.addBodyPart(body);
}
if(entry.getFile() != null && !entry.getFile().equals(""))
{
BodyPart bodyPart = new MimeBodyPart();
bodyPart.setText("文件");
//Multipart multipart = new MimeMultipart();
//此处设置邮件的附件
DataSource source = new FileDataSource(entry.getFile());
bodyPart.setDataHandler(new DataHandler(source));
File file = new File(entry.getFile());
bodyPart.setFileName(file.getName());
multipart.addBodyPart(bodyPart);
System.out.println("发送附件..");
}
msg.setContent(multipart);
Transport transport = session.getTransport("smtp");
System.out.println("连接邮件服务器!");
transport.connect((String)properties.get("mail.smtp.host"),info.getUser(),info.getPassword());
System.out.println("发送邮件....");
transport.send(msg,msg.getRecipients(Message.RecipientType.TO));
System.out.println("发送成功!");
transport.close();
//Transport.send(msg);
} catch (Exception e) {
e.printStackTrace();
}
}
}
注:在使用时需要导入的包:activation.jar,mail.jar.
分享到:
相关推荐
java mailjava mailjava mailjava mailjava mailjava mailjava mailjava mail
一个java mail的组件,可以作为java mail使用的示例,也可以集成到系统中。
java-mail-1.4
本文为你介绍了java mail使用qq邮箱发邮件的方法,大家参考使用吧
java发送附件mail, 包阔多附件,文本mail,以及网页mail.
该资源包含了java mail开发所需要的jar,如下: commons-email-1.2-bin.zip commons-email-1.4-bin.zip javamail_1.4.6.zip javamail_1.4.7.zip javax.mail.jar mailapi.jar smtp.jar
用java发送邮件,内含有两个用java代码书的发送邮件的实例,分别实现发送文本格式的邮件和html格式的邮件
用java 开发email 使用的包都有了 mail-1.4.1.jar activation.jar commons-email-1.2.jar commons-email-1.2-javadoc.jar commons-email-1.2-sources.jar
使用Java mail API访问Lotus Domino邮箱 使用Java mail API访问Lotus Domino邮箱 使用Java mail API访问Lotus Domino邮箱
基于B/S的邮件系统客户端软件,系统全部使用java编写,Web页面使用EasyJWeb框架开发,主要通过调用java mail实现邮件的收发。 基于B/S的邮件系统客户端软件,系统全部使用java编写,Web页面使用EasyJWeb框架开发,主要通过...
文中使用Java mail API写的邮件收发例子。
Java Mail.rar 利用其jar包可以利用java发送邮件的功能,javamail是一个非常有用的jar
java mail服务器java mail服务器java mail服务器java mail服务器java mail服务器java mail服务器java mail服务器java mail服务器java mail服务器java mail服务器java mail服务器java mail服务器
张孝祥的java mail开发教程 Java Mail API的开发是SUN为Java开发者提供公用API框架的持续努力的良好例证。提倡公用框架,反对受限于供应商的解决方案, 充分预示着一个日益开放的开发环境的建立。Java Mail API的...
使用 java mail 发送邮件
Java.mail开发包Java.mail开发包Java.mail开发包Java.mail开发包Java.mail开发包
mail-1.4.7.jar,java发送邮件jar包。通过这个Jar包可实现基于Java的邮件发送,可以应用于Loadrunner或Jmeter中的测试报告邮件发送
18 java mail 使用smtp协议发送简单邮件; 发送带附件的邮件; 给多人发送邮件; 使用pop3接收邮件; 19jsp与servlet 获取客户端的真实ip地址; jsp无刷新聊天室; 设置和读取cookie; 上传文件; 用servlet生成图形验证码;...
NULL 博文链接:https://wenxiang-tune.iteye.com/blog/846379