首页 > 代码库 > java 发送邮件

java 发送邮件

不多说,直接上代码

/**
	 * 发送邮件
	 * @param subject 主题
	 * @param to 收件人
	 * @param username 邮箱账号
	 * @param password 邮箱密码
	 * @param host 邮件服务器
	 * @param content 邮件内容
	 * @param isAuth 是否验证密码
	 */
public void send(String subject, String to,String username, String password, String host, String content,boolean isAuth) {
		try{
			String[] mailArray = to.split(";");
			//多个收件人
			InternetAddress[] addresses = new InternetAddress[mailArray.length];
			for(int i=0;i<mailArray.length;i++){
				addresses[i] = new InternetAddress(mailArray[i]);
			}
			
			//创建properties,用于生成发送邮件的session
			Properties properties = new Properties();
			properties.put("mail.smtp.host", host);   //发送邮件的主机
			properties.put("mail.smtp.auth", isAuth); //是否验证发送人密码
			properties.put("mail.smtp.port", 25);     //端口
			
			//通过配置文件,生成一个session
			Session mailSession = Session.getInstance(properties,null);  
			mailSession.setDebug(true);
			
			//通过session开始创建message
			MimeMessage mailMessage = new MimeMessage(mailSession);  
			////设置发件人,使用InternetAddress
			mailMessage.setFrom(new InternetAddress(username));   
			 //收件人,这里为多个
			mailMessage.setRecipients(MimeMessage.RecipientType.TO, addresses);  
			mailMessage.setSubject(subject);  //邮件主题
                         
                        //Multipart用来防止邮件内容,其中可放多个BodyPart 
			Multipart multipart = new MimeMultipart();  
                         //第一个bodypart,放置普通文字吧
			 BodyPart contentPart = new MimeBodyPart();
	                 contentPart.setContent(content, "text/html;charset=UTF-8");
	                 multipart.addBodyPart(contentPart);
	                //第二个bodypart,放置附件吧
	                BodyPart attachmentBodyPart = new MimeBodyPart();
	                //附件文件,需要用DataSource来构造对象
                        DataSource source = new FileDataSource("E:/students.xls");
                        //DataSource需要用DataHandler来构造
                        attachmentBodyPart.setDataHandler(new DataHandler(source));
                        attachmentBodyPart.setFileName("students.xls");//附件文件名
                        multipart.addBodyPart(attachmentBodyPart);
             
                        mailMessage.setContent(multipart);  //将内容设置给message
			mailMessage.setSentDate(new Date()); //发送时间
			mailMessage.saveChanges();
			if(isAuth){
				Transport.send(mailMessage, username, password);
			}else{
				Transport.send(mailMessage);  //Transport开始发送邮件
			}
		}catch(Exception e){
			try {
				throw e;
			} catch (Exception e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			e.printStackTrace();
		}
	}
	

简单的写一个main方法

public static void main(String arg[]) {
		Mail mail = new Mail();
		//主题,收件人,发件人,密码,邮件服务器。。。。。。。
		mail.send("测试1", "jun.xie@chinacache.com",  "ren.shi@chinacache.com", "123456", "mail.chinacache.com", "testdfdf", false);
	}


本文出自 “bulajunjun” 博客,请务必保留此出处http://5148737.blog.51cto.com/5138737/1587624

java 发送邮件