java jmail_jmail的使用

邮件服务器配置文件:

##协议

mail.transport.protocol=smtp

##邮件服务器地址

mail.smtp.host=mail.126.com

##邮件服务器端口

mail.smtp.port=25

##SMTP服务用户认证

mail.smtp.auth=true

第一个类:

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.util.Properties;

import javax.mail.Session;

public class SessionFactory {

private  SmtpAuth sa = new SmtpAuth("service", "ilove17k");

private  Session session = null;

private  Properties props = new Properties();

public Session getSession(String propertyFilePath) {

try {

props.load(new FileInputStream(new File(propertyFilePath)));

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

session = Session.getInstance(props,sa);

return session;

}

}

第二个类:

import java.io.UnsupportedEncodingException;

import java.util.Date;

import javax.activation.DataHandler;

import javax.activation.DataSource;

import javax.activation.FileDataSource;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.AddressException;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeBodyPart;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimeMultipart;

import javax.mail.internet.MimeUtility;

public class MailUtil {

/**

* 是否有附件

*/

private boolean haveAttachment = false;

/**

* 邮件权限验证

*/

private SmtpAuth auth = null;

/**

* 从哪里发送

*/

private InternetAddress from = null;

/**

* 发给谁

*/

private String mailTo = null;

/**

* 邮件标题

*/

private String title = null;

/**

* 邮件内容

*/

private String body = null;

/**

* 邮件类型

*/

private String content_type = null;

/**

* 会话对象

*/

private Session session = null;

/**

* 邮件对象

*/

private MimeMessage msg = null;

/**

* 正文部分

*/

private MimeMultipart content = null;

/**

* 正文部分

*/

private MimeBodyPart content_part = null;

/**

* 邮件发送对象

*/

private Transport transport = null;

/**

* 属性文件的路径

*

* @param propertyFilePath

*/

public MailUtil(String propertyFilePath) {

SessionFactory sf=new SessionFactory();

session = sf.getSession(propertyFilePath);

msg = new MimeMessage(session);

try {

from = new InternetAddress("[email]service@17k.com[/email]");

} catch (AddressException e) {

e.printStackTrace();

}

content = new MimeMultipart();

content_part = new MimeBodyPart();

content_type = "text/html;charset=gb2312";

}

public boolean send() {

// 设置邮件主题

try {

msg.setSubject(title);

// 设置发信日期

msg.setSentDate(new Date());

// 设置发信人

msg.setFrom(from);

// 设置主收件人

msg.setRecipient(Message.RecipientType.TO, new InternetAddress(

mailTo));

// 设置抄送收件人

// msg.addRecipient(Message.RecipientType.CC, new InternetAddress(

// ""));

// 设置暗抄送人

// msg.addRecipient(Message.RecipientType.BCC, new InternetAddress(

// "[email]huql@17k.com[/email]"));

content_part.setText(body);

content_part.setHeader("Content-Type", content_type);

content.addBodyPart(content_part);

msg.setContent(content);

// 保存修改

msg.saveChanges();

// 创建发送对象

Transport trans = session.getTransport();

// 发送

trans.send(msg);

return true;

} catch (MessagingException e) {

e.printStackTrace();

return false;

}

}

/**

* 添加附件的方法

*

* @throws MessagingException

*/

public void addAttachMent() throws MessagingException {

// 添加附件

String filename = "D:\\Downloads\\super_star.swf"; // 用于存储文件名称与存放路径

if (filename != null || filename.length() > 0) {

DataSource fds = new FileDataSource(filename); // 创建文件流对象

MimeBodyPart p_w_upload_part = new MimeBodyPart();

p_w_upload_part.setDataHandler(new DataHandler(fds));

try {

p_w_upload_part.setFileName(MimeUtility.encodeText(fds

.getName()));

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

// 添加二进制编码至邮件体中

content.addBodyPart(p_w_upload_part);

}

}

public InternetAddress getFrom() {

return from;

}

public void setFrom(InternetAddress from) {

this.from = from;

}

public String getMailTo() {

return mailTo;

}

public void setMailTo(String mailTo) {

this.mailTo = mailTo;

}

public String getTitle() {

return title;

}

public void setTitle(String title) {

this.title = title;

}

public String getBody() {

return body;

}

public void setBody(String body) {

this.body = body;

}

}

测试:

public static void main(String args){

MailUtil mail = new MailUtil(propertyFile);

mail.setTitle(Utils.toGB2312(title));

mail.setBody(headContent.toString()+bookContent.toString());

mail.setMailTo(email);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值