`
zyn010101
  • 浏览: 324585 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jmail发送邮件(转)

阅读更多
package com.chinahrt.zyn;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Address;
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 {
	
	
	private MimeMessage mimeMsg; // MIME邮件对象   
	private Session session; // 邮件会话对象   
	private Properties props; // 系统属性   
	private boolean needAuth = false; // smtp是否需要认证   
	private String username = ""; // smtp认证用户名和密码   
	private String password = "";
	private Multipart mp; // Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成//MimeMessage对象   
	public MailUtil(String smtp){
		setSmtpHost(smtp);
		createMimeMessage();
	}
	
	public void setSmtpHost(String hostName){
		if(props == null){
			props = System.getProperties();
			props.put("mail.smtp.host", hostName);
		}
	}
	
	public boolean createMimeMessage(){
		try{
			System.out.println("准备获取邮件回话对象");
			session = Session.getDefaultInstance(props,null);
		}catch(Exception e){
			e.printStackTrace();
			return false;
		}
		System.out.println("准备常见mime邮件对象");
		try{
			mimeMsg = new MimeMessage(session);
			mp = new MimeMultipart();
			return true;
		}catch(Exception e){
			e.printStackTrace();
			return false;
		}
	}
	
	public void setNeedAuth(boolean need){
		System.out.println("设置smtp身份认证:mail.smtp.auth="+need);
		if(props == null){
			props = System.getProperties();
		}
		if(need){
			props.put("mail.smtp.auth","true");
		}else{
			props.put("mail.smtp.auth", "false");
		}
	}
	
	public void setNamePass(String name,String pass){
		System.out.println("程序得到用户名与密码");
		username = name;
		password = pass;
	}
	
	public boolean setSubject(String mailSubject){
		System.out.println("设置邮件主题");
		try{
			mimeMsg.setSubject(mailSubject);
			return true;
		}catch(Exception e){
			System.out.println("设置邮件主题发生错误!");
			return false;
		}
	}
	
	public boolean setBody(String mailBody){
		try{
			System.out.println("设置邮件格式");
			BodyPart bp = new MimeBodyPart();
			bp.setContent("<meta http-equiv=Content-Type content=text/html;charset=gb2312>"+
			mailBody,"text/html;charset=GB2312");
			mp.addBodyPart(bp);
			return true;
		}catch(Exception e){
			System.out.println("设置邮件格式错误");
			e.printStackTrace();
			return false;
		}
	}
	
	public boolean addFileAffix(String filename){
		System.out.println("增加邮件附件:"+filename);
		try{
			BodyPart bp = new MimeBodyPart();
			FileDataSource fields = new FileDataSource(filename);
			bp.setDataHandler(new DataHandler(fields));
			bp.setFileName(fields.getName());
			mp.addBodyPart(bp);
			return true;
		}catch(Exception e){
			System.out.println("增加邮件附件:"+filename+"发生错误!");
			e.printStackTrace();
			return false;
		}
	}
	
	public boolean setFrom(String from){
		System.out.println("设置发信人");
		try{
			mimeMsg.setFrom(new InternetAddress(from));
			return true;
		}catch(Exception e){
			return false;
		}
	}
	
	public boolean setTo(String to){
		System.out.println("设置收信人");
		if(to == null){
			return false;
		}
		try{
			mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
			return true;
		}catch(Exception e){
			e.printStackTrace();
			return false;
		}
	}
	
	public boolean setCopyTo(String copyto){
		System.out.println("发邮件到"+copyto);
		if(copyto == null){
			return false;
		}
		try{
			mimeMsg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(copyto));
			return true;
		}catch(Exception e){
			e.printStackTrace();
			return false;
		}
	}
	
	public boolean sendout(){
		try{
			mimeMsg.setContent(mp);
			mimeMsg.saveChanges();
			System.out.println("正在发送邮件...");
			Session mailSession = Session.getInstance(props,null);
			Transport transport = mailSession.getTransport("smtp");
			transport.connect((String)props.get("mail.smtp.host"),username, password);
			transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.TO));
//加了才可以发到抄送人
			transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.CC));
//加了才可以发到密送人
transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.BCC));

			System.out.println("邮件发送成功");
			transport.close();
			return true;
		}catch(Exception e){
			System.out.println("邮件发送失败");
			e.printStackTrace();
			return false;
		}
	}
	
	public static void main(String[] args){
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String mailbody = "邮件注册测试 "+sdf.format(new Date());
		MailUtil themail = new MailUtil("smtp.163.com");
		themail.setNeedAuth(true);
		if (themail.setSubject("chinahrt邮件测试") == false) 
			return;
		//邮件内容 支持html 如 <font color=red>欢迎光临</font> <a href=\"http://www.laabc.com\">啦ABC</a>   
		if (themail.setBody(mailbody) == false)
			return; 
		//收件人邮箱   
		if (themail.setCopyTo("1111111@qq.com,") == false)
			return; 
		if (themail.setTo("111111@sina.com") == false)
			return; 
		//发件人邮箱   
		if (themail.setFrom("zhangyanan@chinanet.gov.cn") == false)
			return;
		//设置附件   
		//if (themail.addFileAffix("#######") == false)   //return; // 附件在本地机子上的绝对路径   
		themail.setNamePass("444444444@chinanet.gov.cn", "123456"); // 用户名与密码   
		if (themail.sendout() == false)
			return;
	}
	
}

 

分享到:
评论

相关推荐

    利用Jmail发送邮件:

    ### 使用Jmail发送与接收邮件的关键技术点 #### 发送邮件 在提供的代码片段中,主要涉及了如何使用Jmail库来实现邮件的发送功能。Jmail是一个强大的.NET类库,用于开发支持SMTP、POP3协议的应用程序。下面将详细...

    VFP利用JMAIL发送邮件及附件

    VFP利用JMAIL发送邮件及附件,纯代码,效果好VFP利用JMAIL发送邮件及附件,纯代码,效果好

    asp.net中使用Jmail发送邮件

    接下来,要在ASP.NET中使用Jmail发送邮件,首先要在你的Web.config文件中配置Jmail的相关设置。这通常包括SMTP服务器地址、端口、用户名、密码等信息。例如: ```xml &lt;add key="JMail.SMTPServer" value=...

    jmail发送邮件

    本文将基于给定的文件信息,深入解析使用JMail组件发送邮件的关键知识点,包括代码解读、配置参数、工作原理及注意事项。 ### JMail组件简介 JMail是一款功能强大的ASP邮件组件,它简化了电子邮件的发送过程,使得...

    Jmail实现邮件的发送

    JMail是一款用于在Java环境中发送电子邮件的开源库,它提供了简单易用的API,使得开发者无需注册即可直接发送邮件。这个工具特别适用于那些需要在应用程序中集成邮件功能的项目,如用户通知、批量邮件发送等场景。...

    vb jmail 发送邮件

    对于使用Visual Basic(VB)进行编程的开发者来说,利用第三方组件如jmail来发送邮件是一种高效且简便的方法。本文将深入解析如何使用jmail在VB环境中发送邮件,包括必要的环境配置、代码示例及其详细解释。 ### ...

    使用Jmail组件发送和接收邮件(含附件)

    使用JMail发送邮件主要包括以下几个步骤: 1. **配置SMTP服务器**:JMail需要知道SMTP服务器的信息,包括服务器地址、端口号、用户名和密码。这些信息可以在程序中以Properties对象的形式设置。 2. **创建Session...

    jmail表单发送邮件

    - `save.asp`: 这个文件可能包含了接收表单数据并使用JMail发送邮件的逻辑。 - `default.asp`: 可能是用户填写邮件信息的表单页面。 - `checkcode.asp`: 可能用于验证码验证,防止垃圾邮件。 - `validatebody....

    jmail发送HTML静态版

    7. **发送邮件**:最后,调用组件的发送函数,将邮件发送出去。发送过程可能需要处理网络延迟或服务器验证等问题。 8. **错误处理**:为了保证程序的健壮性,应加入适当的错误处理机制,如异常捕获,以应对可能出现...

    java jmail 发送邮件

    本教程将深入讲解如何使用Java JMail发送邮件,以及涉及的相关知识点。 1. **Java JMail基本概念** - **JavaMail API**: JavaMail API是Java平台上的一个标准API,用于处理电子邮件。它提供了与邮件服务器交互的...

    用ASP的发送邮件 jmail邮件发送.docx

    以下是使用JMail发送邮件的关键步骤: 1. **配置邮件服务器信息**: - `E_Server`:设置SMTP(Simple Mail Transfer Protocol)服务器的地址,例如"192.168.0.235",这是发送邮件的服务器。 - `E_ServerUser`:...

    Jmail发送邮件系统源码

    邮件发送系统主要由【重新登录】、【邮件群发】、【添加好友】、【查看好友】、【查看邮件信息】、【查看紧急邮件】等模块组成,进入邮件发送系统后,可将全部好友的Email添加到该程序里,使发送信息时能进行多个...

    Jmail发送邮件系统源码_jmailsend.zip

    《Jmail发送邮件系统源码解析与应用》 在信息技术高速发展的今天,电子邮件已经成为企业和个人进行日常沟通的重要工具。为了实现高效、稳定的邮件发送功能,许多开发者选择利用邮件发送库来构建自己的邮件系统。...

    asp用jmail发送邮件,jmail邮件发送组件(成功发送附详细说明)

    目前网上流行的jmail邮件发送资料不是很实用,要么发送不成功,要么发送失败,本实例是作者本人从事开发的实践经验,拿出来与大家共享,内有详细的实用说明教程,如果有任何疑问请联系QQ278742549

    JMAIL邮件发送示例代码C++

    在IT行业中,邮件发送是常见的通信方式之一,尤其在企业级...总的来说,利用JMAIL库在C++中发送邮件是一项基础但实用的任务,通过学习和实践,开发者可以掌握这项技能,从而在自己的项目中实现高效稳定的邮件通信功能。

    易语言:jmail发送HTML静态版

    要实现“易语言:jmail发送HTML静态版”,我们需要以下几个步骤: 1. **引入JMail组件**:在易语言项目中,需要导入JMail的相关库文件,这些文件通常包含`.dll`或`.jar`格式,根据易语言的版本和环境进行选择。确保...

    vb jmail发送邮件

    在VB(Visual Basic)开发环境中,使用JMail组件发送邮件是一种常见的实现方式。JMail是一款功能强大的邮件组件,它提供了丰富的API,使得开发者能够轻松地在应用程序中集成邮件发送功能。下面将详细介绍如何利用VB...

    jmail4.4-发送邮件

    `jmail4.4-发送邮件`这个标题和描述指向的是一个特定的版本,即Jmail 4.4,它提供了在ASP和ASP.NET环境中发送邮件的功能。在这里,我们将深入探讨Jmail 4.4的工作原理、使用方法以及如何通过实例来实现邮件发送。 *...

    Jmail 发送邮件 C#

    利用Jmail发送邮件,参考网上资料改良,在自己的程序中结合MS exchange多次使用,经过测试也可以适用于公共邮箱。

Global site tag (gtag.js) - Google Analytics