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是一个强大的.NET类库,用于开发支持SMTP、POP3协议的应用程序。下面将详细...
VFP利用JMAIL发送邮件及附件,纯代码,效果好VFP利用JMAIL发送邮件及附件,纯代码,效果好
接下来,要在ASP.NET中使用Jmail发送邮件,首先要在你的Web.config文件中配置Jmail的相关设置。这通常包括SMTP服务器地址、端口、用户名、密码等信息。例如: ```xml <add key="JMail.SMTPServer" value=...
本文将基于给定的文件信息,深入解析使用JMail组件发送邮件的关键知识点,包括代码解读、配置参数、工作原理及注意事项。 ### JMail组件简介 JMail是一款功能强大的ASP邮件组件,它简化了电子邮件的发送过程,使得...
JMail是一款用于在Java环境中发送电子邮件的开源库,它提供了简单易用的API,使得开发者无需注册即可直接发送邮件。这个工具特别适用于那些需要在应用程序中集成邮件功能的项目,如用户通知、批量邮件发送等场景。...
对于使用Visual Basic(VB)进行编程的开发者来说,利用第三方组件如jmail来发送邮件是一种高效且简便的方法。本文将深入解析如何使用jmail在VB环境中发送邮件,包括必要的环境配置、代码示例及其详细解释。 ### ...
使用JMail发送邮件主要包括以下几个步骤: 1. **配置SMTP服务器**:JMail需要知道SMTP服务器的信息,包括服务器地址、端口号、用户名和密码。这些信息可以在程序中以Properties对象的形式设置。 2. **创建Session...
- `save.asp`: 这个文件可能包含了接收表单数据并使用JMail发送邮件的逻辑。 - `default.asp`: 可能是用户填写邮件信息的表单页面。 - `checkcode.asp`: 可能用于验证码验证,防止垃圾邮件。 - `validatebody....
7. **发送邮件**:最后,调用组件的发送函数,将邮件发送出去。发送过程可能需要处理网络延迟或服务器验证等问题。 8. **错误处理**:为了保证程序的健壮性,应加入适当的错误处理机制,如异常捕获,以应对可能出现...
本教程将深入讲解如何使用Java JMail发送邮件,以及涉及的相关知识点。 1. **Java JMail基本概念** - **JavaMail API**: JavaMail API是Java平台上的一个标准API,用于处理电子邮件。它提供了与邮件服务器交互的...
以下是使用JMail发送邮件的关键步骤: 1. **配置邮件服务器信息**: - `E_Server`:设置SMTP(Simple Mail Transfer Protocol)服务器的地址,例如"192.168.0.235",这是发送邮件的服务器。 - `E_ServerUser`:...
邮件发送系统主要由【重新登录】、【邮件群发】、【添加好友】、【查看好友】、【查看邮件信息】、【查看紧急邮件】等模块组成,进入邮件发送系统后,可将全部好友的Email添加到该程序里,使发送信息时能进行多个...
《Jmail发送邮件系统源码解析与应用》 在信息技术高速发展的今天,电子邮件已经成为企业和个人进行日常沟通的重要工具。为了实现高效、稳定的邮件发送功能,许多开发者选择利用邮件发送库来构建自己的邮件系统。...
目前网上流行的jmail邮件发送资料不是很实用,要么发送不成功,要么发送失败,本实例是作者本人从事开发的实践经验,拿出来与大家共享,内有详细的实用说明教程,如果有任何疑问请联系QQ278742549
在IT行业中,邮件发送是常见的通信方式之一,尤其在企业级...总的来说,利用JMAIL库在C++中发送邮件是一项基础但实用的任务,通过学习和实践,开发者可以掌握这项技能,从而在自己的项目中实现高效稳定的邮件通信功能。
要实现“易语言:jmail发送HTML静态版”,我们需要以下几个步骤: 1. **引入JMail组件**:在易语言项目中,需要导入JMail的相关库文件,这些文件通常包含`.dll`或`.jar`格式,根据易语言的版本和环境进行选择。确保...
在VB(Visual Basic)开发环境中,使用JMail组件发送邮件是一种常见的实现方式。JMail是一款功能强大的邮件组件,它提供了丰富的API,使得开发者能够轻松地在应用程序中集成邮件发送功能。下面将详细介绍如何利用VB...
`jmail4.4-发送邮件`这个标题和描述指向的是一个特定的版本,即Jmail 4.4,它提供了在ASP和ASP.NET环境中发送邮件的功能。在这里,我们将深入探讨Jmail 4.4的工作原理、使用方法以及如何通过实例来实现邮件发送。 *...
利用Jmail发送邮件,参考网上资料改良,在自己的程序中结合MS exchange多次使用,经过测试也可以适用于公共邮箱。