用java发送电子邮件

环境:jdk1.7    

邮件服务器: james2.3.2     

1.   建立java工程,导入jar包 javax.mail.jar

2. 编写邮件实体类

==================MailInfo.java====================

package com.obtk.entitys;

import java.io.File;

/**
 * @author Administrator
 */
public class MailInfo {
	//服务器(用域名表示wx.com  127.0.0.1)
	private String mailServer;
	private String mailSender;   //邮件发送者
	private String mailReceiver;  //邮件接受者
	private String mailSubject;   //邮件标题
	private String mailContent;   //邮件内容
	private String userName;    //用户名
	private String passWord;    //密码
	private String mailCc;//抄送地址
	private String[] mailBcc;   //抄送给很多人
	private File[] attachments;  //附件
	
	public void setAttachments(File[] attachments) {
		this.attachments = attachments;
	}
	
	public File[] getAttachments() {
		return attachments;
	}
	
	
	public String getMailCc() {
		return mailCc;
	}
	public void setMailCc(String mailCc) {
		this.mailCc = mailCc;
	}
	public String[] getMailBcc() {
		return mailBcc;
	}
	public void setMailBcc(String[] mailBcc) {
		this.mailBcc = mailBcc;
	}
	public String getMailServer() {
		return mailServer;
	}
	public void setMailServer(String mailServer) {
		this.mailServer = mailServer;
	}
	public String getMailSender() {
		return mailSender;
	}
	public void setMailSender(String mailSender) {
		this.mailSender = mailSender;
	}
	public String getMailReceiver() {
		return mailReceiver;
	}
	public void setMailReceiver(String mailReceiver) {
		this.mailReceiver = mailReceiver;
	}
	public String getMailSubject() {
		return mailSubject;
	}
	public void setMailSubject(String mailSubject) {
		this.mailSubject = mailSubject;
	}
	public String getMailContent() {
		return mailContent;
	}
	public void setMailContent(String mailContent) {
		this.mailContent = mailContent;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getPassWord() {
		return passWord;
	}
	public void setPassWord(String passWord) {
		this.passWord = passWord;
	}
	
	
}
3.   编写用户验证类

================MailAuthCheck.java=================

package com.obtk.test;

import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;

public class MailAuthCheck extends Authenticator{
	private String userName;
	private String passWord;
	
	public MailAuthCheck(String userName, String passWord) {
		super();
		this.userName = userName;
		this.passWord = passWord;
	}
	
	protected PasswordAuthentication getPasswordAuthentication() {
		System.out.println("验证执行了");
		//进行用户名和密码验证
		return new PasswordAuthentication(userName, passWord);
	}
}

4.  编写测试类

============TestMail01.java===============

package com.obtk.test;

import java.util.Properties;

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import com.obtk.entitys.MailInfo;

public class TestMail01 {
	
	public static void send(MailInfo theMail){
		//设置服务参数
		Properties prop=System.getProperties();
		prop.put("mail.smtp.host",theMail.getMailServer());
		prop.put("mail.smtp.auth", "true");//表示进行用户验证
		try {
			//产生session服务
			MailAuthCheck authCheck=new MailAuthCheck(theMail.getUserName(), theMail.getPassWord());
			Session mailSess=Session.getInstance(prop, authCheck);
			Message msg=new MimeMessage(mailSess);
			//设置发送者
			msg.setFrom(new InternetAddress(theMail.getMailSender()));
			//设置接收者
			msg.setRecipient(Message.RecipientType.TO,new InternetAddress(theMail.getMailReceiver()) );
			//设置标题
			msg.setSubject(theMail.getMailSubject());
			//设置内容
			msg.setContent(theMail.getMailContent(),"text/html;charset=utf-8");
			//创建发送示例
			Transport trans=mailSess.getTransport("smtp");
			//发送
			trans.send(msg);
			//关闭
			trans.close();
			System.out.println("发送成功!");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) {
		MailInfo theMail=new MailInfo();
		theMail.setUserName("test1");
		theMail.setPassWord("123456");
		theMail.setMailServer("wx.com");
		theMail.setMailSender("test1@wx.com");
		theMail.setMailReceiver("test3@wx.com");
		theMail.setMailSubject("这是代码发送的");
		theMail.setMailContent("hello,这是代码发送的内容!!!");
		send(theMail);
	}
}





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

御前两把刀刀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值