package tbx;import javax.mail.*;
import javax.mail.internet.*;
import java.io.*;
import java.util.*;
import javax.activation.*;public class MailBean
{
protected String to = ""; //收件人
protected String from = ""; //发件人
protected String cc = ""; //抄送地址
protected String bcc = ""; //是否暗送,若暗送,地址等于to
protected String subject = ""; //标题
protected String text = ""; //邮件内容
protected String user = ""; //用户名
protected String password = ""; //密码 static Vector file = new Vector(); //用于保存发送附件的文件名的集合 public MailBean()
{
} /**
* 做一个可以传发件人等参数的构造
* @param to,收件人
* @param from,发件人
* @param subject,标题
* @param text,邮件内容
* @param user,用户名
* @param password,密码
* @param b,判断是否需要暗送,需要则用To的地址
*/
public MailBean(String to,String from,String subject,String text,String user,String password,boolean b)
{
//初始化发件人、收件人、主题等
this.to = to;
this.from = from;
this.subject = subject;
this.text = text;
this.user = user;
this.password = password; if (b == true)
{
this.bcc = to;
}
else
{
this.bcc ="";
}
}
public void setTo(String to)
{
if (to != null)
{
this.to = to;
}
else
{
this.to = "";
}
} public void setFrom(String from)
{
if (from != null)
{
this.from = from;
}
else
{
this.from = "";
}
} public void setCc(String cc)
{
if (cc != null)
{
this.cc = cc;
}
else
{
this.cc = "";
}
} public void setBcc(String bcc)
{
if (bcc != null)
{
this.bcc = bcc;
}
else
{
this.bcc = "";
}
} public void setSubject(String subject)
{
if (subject != null)
{
this.subject = subject;
}
else
{
this.subject = "";
}
} public void setText(String text)
{
this.text = text;
} public void setUser(String user)
{
if (user != null)
{
this.user = user;
}
else
{
this.user = "";
}
} public void setPassword(String password)
{
if (password != null)
{
this.password = password;
}
else
{
this.password = "";
}
} /**
* 发送邮件,可设置抄送地址,暗送地址
* @return i,返回<int>1</int>表示发送成功,返回<int>0</int>则发送失败
*/
public int sendMail()
{
String status = null; //用于显示错误状态
int i = 0; Properties properties = System.getProperties();
properties.setProperty("mail.transport.protocol","smtp");
properties.put("mail.smtp.host","smtp.163.com"); //创建信件服务器
properties.put("mail.smtp.auth","true"); //身份认证 //得到对话对象
Session session = Session.getDefaultInstance(properties, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user,password);
}
});
try
{
//创建一个消息,并初始化该消息的各项元素
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from)); InternetAddress[] toadd = InternetAddress.parse(to);
InternetAddress[] ccadd = InternetAddress.parse(cc);
InternetAddress[] bcadd = InternetAddress.parse(bcc);
message.setRecipients(Message.RecipientType.TO,toadd);
message.setRecipients(Message.RecipientType.CC,ccadd);
message.setRecipients(Message.RecipientType.BCC,bcadd);
message.setSubject(subject); Multipart mp = new MimeMultipart();
Enumeration ef = file.elements();
MimeBodyPart mbp = new MimeBodyPart();
mbp.setText(text);
mp.addBodyPart(mbp); //检查序列中是否还有更多的对象
while (ef.hasMoreElements())
{
MimeBodyPart mbp1 = new MimeBodyPart();
//选择出每一个附件名
String filename = ef.nextElement().toString();
//得到数据源
FileDataSource fds = new FileDataSource(filename);
//得到附件本身并至入BodyPart
mbp1.setDataHandler(new DataHandler(fds));
//得到文件名同样至入BodyPart
mbp1.setFileName(fds.getName());
mp.addBodyPart(mbp1);
}
//移走集合中的所有元素
file.removeAllElements();
//Multipart加入到信件
message.setContent(mp);
//设置信件头的发送日期
message.setSentDate(new Date()); //发送信件
Transport transport = session.getTransport("smtp");
transport.send(message,message.getAllRecipients());
transport.close(); i = 1;
status = "send sucesseful.";
}
catch (AddressException e)
{
status = "There was an error parsing the addresses.";
System.err.println(e.getMessage());
}
catch (SendFailedException e)
{
status = "There was an error sending the message.";
System.err.println(e.getMessage());
}
catch (MessagingException e)
{
status = "There was an unexpected eorror.";
System.err.println(e.getMessage());
}
catch (Exception e)
{
status = "Error";
System.err.println(e.getMessage());
}
finally
{
System.out.println("status: " + status);
return i;
}
} /**
* 该方法用于添加附件名
* @param fname,附件路径+名称
*/
public void attachfile(String fname)
{
file.addElement(fname);
} /**
* 该方法用于删除某一附件
* @param fname,附件名
*/
public void delAttach(String fname)
{
file.remove(fname);
} public static void main(String[] args)
{
MailBean mb = new MailBean();
mb.setBcc("[email protected]");
mb.setFrom("163");
mb.setSubject("test");
mb.setText("1232143243215");
mb.setUser("peppi");
mb.setPassword("112233");
// MailBean mb = new MailBean("[email protected]","163","test","1232143243215","*****","******",true); int s = mb.sendMail();
}}
import javax.mail.internet.*;
import java.io.*;
import java.util.*;
import javax.activation.*;public class MailBean
{
protected String to = ""; //收件人
protected String from = ""; //发件人
protected String cc = ""; //抄送地址
protected String bcc = ""; //是否暗送,若暗送,地址等于to
protected String subject = ""; //标题
protected String text = ""; //邮件内容
protected String user = ""; //用户名
protected String password = ""; //密码 static Vector file = new Vector(); //用于保存发送附件的文件名的集合 public MailBean()
{
} /**
* 做一个可以传发件人等参数的构造
* @param to,收件人
* @param from,发件人
* @param subject,标题
* @param text,邮件内容
* @param user,用户名
* @param password,密码
* @param b,判断是否需要暗送,需要则用To的地址
*/
public MailBean(String to,String from,String subject,String text,String user,String password,boolean b)
{
//初始化发件人、收件人、主题等
this.to = to;
this.from = from;
this.subject = subject;
this.text = text;
this.user = user;
this.password = password; if (b == true)
{
this.bcc = to;
}
else
{
this.bcc ="";
}
}
public void setTo(String to)
{
if (to != null)
{
this.to = to;
}
else
{
this.to = "";
}
} public void setFrom(String from)
{
if (from != null)
{
this.from = from;
}
else
{
this.from = "";
}
} public void setCc(String cc)
{
if (cc != null)
{
this.cc = cc;
}
else
{
this.cc = "";
}
} public void setBcc(String bcc)
{
if (bcc != null)
{
this.bcc = bcc;
}
else
{
this.bcc = "";
}
} public void setSubject(String subject)
{
if (subject != null)
{
this.subject = subject;
}
else
{
this.subject = "";
}
} public void setText(String text)
{
this.text = text;
} public void setUser(String user)
{
if (user != null)
{
this.user = user;
}
else
{
this.user = "";
}
} public void setPassword(String password)
{
if (password != null)
{
this.password = password;
}
else
{
this.password = "";
}
} /**
* 发送邮件,可设置抄送地址,暗送地址
* @return i,返回<int>1</int>表示发送成功,返回<int>0</int>则发送失败
*/
public int sendMail()
{
String status = null; //用于显示错误状态
int i = 0; Properties properties = System.getProperties();
properties.setProperty("mail.transport.protocol","smtp");
properties.put("mail.smtp.host","smtp.163.com"); //创建信件服务器
properties.put("mail.smtp.auth","true"); //身份认证 //得到对话对象
Session session = Session.getDefaultInstance(properties, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user,password);
}
});
try
{
//创建一个消息,并初始化该消息的各项元素
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from)); InternetAddress[] toadd = InternetAddress.parse(to);
InternetAddress[] ccadd = InternetAddress.parse(cc);
InternetAddress[] bcadd = InternetAddress.parse(bcc);
message.setRecipients(Message.RecipientType.TO,toadd);
message.setRecipients(Message.RecipientType.CC,ccadd);
message.setRecipients(Message.RecipientType.BCC,bcadd);
message.setSubject(subject); Multipart mp = new MimeMultipart();
Enumeration ef = file.elements();
MimeBodyPart mbp = new MimeBodyPart();
mbp.setText(text);
mp.addBodyPart(mbp); //检查序列中是否还有更多的对象
while (ef.hasMoreElements())
{
MimeBodyPart mbp1 = new MimeBodyPart();
//选择出每一个附件名
String filename = ef.nextElement().toString();
//得到数据源
FileDataSource fds = new FileDataSource(filename);
//得到附件本身并至入BodyPart
mbp1.setDataHandler(new DataHandler(fds));
//得到文件名同样至入BodyPart
mbp1.setFileName(fds.getName());
mp.addBodyPart(mbp1);
}
//移走集合中的所有元素
file.removeAllElements();
//Multipart加入到信件
message.setContent(mp);
//设置信件头的发送日期
message.setSentDate(new Date()); //发送信件
Transport transport = session.getTransport("smtp");
transport.send(message,message.getAllRecipients());
transport.close(); i = 1;
status = "send sucesseful.";
}
catch (AddressException e)
{
status = "There was an error parsing the addresses.";
System.err.println(e.getMessage());
}
catch (SendFailedException e)
{
status = "There was an error sending the message.";
System.err.println(e.getMessage());
}
catch (MessagingException e)
{
status = "There was an unexpected eorror.";
System.err.println(e.getMessage());
}
catch (Exception e)
{
status = "Error";
System.err.println(e.getMessage());
}
finally
{
System.out.println("status: " + status);
return i;
}
} /**
* 该方法用于添加附件名
* @param fname,附件路径+名称
*/
public void attachfile(String fname)
{
file.addElement(fname);
} /**
* 该方法用于删除某一附件
* @param fname,附件名
*/
public void delAttach(String fname)
{
file.remove(fname);
} public static void main(String[] args)
{
MailBean mb = new MailBean();
mb.setBcc("[email protected]");
mb.setFrom("163");
mb.setSubject("test");
mb.setText("1232143243215");
mb.setUser("peppi");
mb.setPassword("112233");
// MailBean mb = new MailBean("[email protected]","163","test","1232143243215","*****","******",true); int s = mb.sendMail();
}}
得到一个客户的附件