网站首页 > 文章中心 > 其它

抄送人java代码的简单介绍

作者:小编 更新时间:2023-08-18 14:50:29 浏览量:240人看过

JAVA 如何实现群发邮件(1000封以上)谢谢!

刚好我也在学习,网上找了些:

邮件群发:

收件人的地址设置为tomail i的形式,利用For循环向这些地址发送邮件,以实现群发的目的.

利用Address类设置邮件信息的收件人和发件人信息,在创建了邮件地址类后,通过message的setFrom()方法设置邮件的发件人,代码如下:

message.setFrom(from_mail);

抄送人java代码的简单介绍-图1

设置收件人地址时使用setRecipient()方法设置收信人地址,代码如下:

message.setRecipient(type,address);

①.)Message.RecipientType.TO--发送.

java 发送邮件 需要哪些jar包

使用JavaMail发送邮件需要用到mail.jar和activtion.jar两个包.

该类实现了较完整的邮件发送功能,包括以HTML格式发送,添加附件和抄送人.下面是具体的代码:

package?cn.cgw.util.mail;?

抄送人java代码的简单介绍-图2

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?Mail?{?

private?MimeMessage?mimeMsg;?//MIME邮件对象?

private?Session?session;?//邮件会话对象?

private?Properties?props;?//系统属性?

private?boolean?needAuth?=?false;?//smtp是否需要认证?

//smtp认证用户名和密码?

private?String?username;?

private?String?password;?

private?Multipart?mp;?//Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象?

/**?

*?Constructor?

*/?

public?Mail(String?smtp){?

setSmtpHost(smtp);?

createMimeMessage();?

}?

*?设置邮件发送服务器?

public?void?setSmtpHost(String?hostName)?{?

System.out.println("设置系统属性:mail.smtp.host?=?"+hostName);?

if(props?==?null)?

props?=?System.getProperties();?//获得系统属性对象?

props.put("mail.smtp.host",hostName);?//设置SMTP主机?

*?创建MIME邮件对象?

public?boolean?createMimeMessage()?

{?

try?{?

System.out.println("准备获取邮件会话对象!");?

session?=?Session.getDefaultInstance(props,null);?//获得邮件会话对象?

catch(Exception?e){?

System.err.println("获取邮件会话对象时发生错误!"+e);?

return?false;?

System.out.println("准备创建MIME邮件对象!");?

mimeMsg?=?new?MimeMessage(session);?//创建MIME邮件对象?

mp?=?new?MimeMultipart();?

return?true;?

}?catch(Exception?e){?

System.err.println("创建MIME邮件对象失败!"+e);?

}??

*?设置SMTP是否需要验证?

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)?{?

username?=?name;?

password?=?pass;?

*?设置邮件主题?

public?boolean?setSubject(String?mailSubject)?{?

System.out.println("设置邮件主题!");?

try{?

mimeMsg.setSubject(mailSubject);?

catch(Exception?e)?{?

System.err.println("设置邮件主题发生错误!");?

*?设置邮件正文?

public?boolean?setBody(String?mailBody)?{?

BodyPart?bp?=?new?MimeBodyPart();?

bp.setContent(""+mailBody,"text/html;charset=GBK");?

mp.addBodyPart(bp);?

System.err.println("设置邮件正文时发生错误!"+e);?

*?添加附件?

public?boolean?addFileAffix(String?filename)?{?

System.out.println("增加邮件附件:"+filename);?

FileDataSource?fileds?=?new?FileDataSource(filename);?

bp.setDataHandler(new?DataHandler(fileds));?

bp.setFileName(fileds.getName());?

System.err.println("增加邮件附件:"+filename+"发生错误!"+e);?

*?设置发信人?

public?boolean?setFrom(String?from)?{?

System.out.println("设置发信人!");?

mimeMsg.setFrom(new?InternetAddress(from));?//设置发信人?

}?catch(Exception?e)?{?

*?设置收信人?

public?boolean?setTo(String?to){?

if(to?==?null)return?false;?

mimeMsg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));?

*?设置抄送人?

public?boolean?setCopyTo(String?copyto)?

if(copyto?==?null)return?false;?

mimeMsg.setRecipients(Message.RecipientType.CC,(Address[])InternetAddress.parse(copyto));?

catch(Exception?e)?

{?return?false;?}?

*?发送邮件?

public?boolean?sendOut()?

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.send(mimeMsg);?

System.out.println("发送邮件成功!");?

transport.close();?

System.err.println("邮件发送失败!"+e);?

*?调用sendOut方法完成邮件发送?

public?static?boolean?send(String?smtp,String?from,String?to,String?subject,String?content,String?username,String?password)?{?

Mail?theMail?=?new?Mail(smtp);?

theMail.setNeedAuth(true);?//需要验证?

if(!theMail.setSubject(subject))?return?false;?

if(!theMail.setBody(content))?return?false;?

if(!theMail.setTo(to))?return?false;?

if(!theMail.setFrom(from))?return?false;?

theMail.setNamePass(username,password);?

if(!theMail.sendOut())?return?false;?

*?调用sendOut方法完成邮件发送,带抄送?

public?static?boolean?sendAndCc(String?smtp,String?from,String?to,String?copyto,String?subject,String?content,String?username,String?password)?{?

if(!theMail.setCopyTo(copyto))?return?false;?

*?调用sendOut方法完成邮件发送,带附件?

public?static?boolean?send(String?smtp,String?from,String?to,String?subject,String?content,String?username,String?password,String?filename)?{?

if(!theMail.addFileAffix(filename))?return?false;?

*?调用sendOut方法完成邮件发送,带附件和抄送?

public?static?boolean?sendAndCc(String?smtp,String?from,String?to,String?copyto,String?subject,String?content,String?username,String?password,String?filename)?{?

}

java 邮件发送 为什么不能运行成功 代码如下

你都没有设置邮件服务器....这句错误就是你没有设置邮件服务器或者你的用户名密码不正确

下面是我原来写的代码请参考:

首先是邮件模板的读取工具类

[java]?view?plaincopy

package?gamutsoft.mail.test;?

import?java.io.BufferedReader;?

import?java.io.File;?

import?java.io.FileInputStream;?

import?java.io.FileNotFoundException;?

import?java.io.IOException;?

import?java.io.InputStreamReader;?

public?class?ReadHTML?{?

//public?static?void?main(String[]?args)?{?

//?TODO?Auto-generated?method?stub?

public?static?String?reMailString(){?

//String?info="";?

StringBuffer?buff=new?StringBuffer();?

InputStreamReader?in=null;?

BufferedReader?br=null;?

File?file=new?File(path);?

in=new?InputStreamReader(new?FileInputStream(file));?

br=new?BufferedReader(in);?

String?line=null;?

while((line=br.readLine())?!=?null){?

//System.out.println(line);?

buff.append(line).append("\n");?

}?catch?(FileNotFoundException?e)?{?

//?TODO?Auto-generated?catch?block?

e.printStackTrace();?

}?catch?(IOException?e)?{?

}finally{?

if(in!=null){?

in.close();?

if(br!=null){?

br.close();?

return?buff.toString();?

邮件的html模板:

[html]?view?plaincopy

html?

head?

/head?

body?

a?href=""网易/a?

br?

欢迎光临,呵呵呵呵呵呵呵呵额?

十分感谢?

/html?

邮件发送类:这里的邮箱是为了自己的隐私我乱写了下,如果测试的话还得填写正确的

import?java.io.UnsupportedEncodingException;?

import?java.util.Date;?

import?javax.mail.Authenticator;?

import?javax.mail.MessagingException;?

public?class?MailTest1?{?

public?static?void?send()?throws?MessagingException,?UnsupportedEncodingException?{?

String?info=ReadHTML.reMailString();?

//邮件服务器?

//发件人?

//收件人?

//抄送人?

//邮件会话属性?

//Properties?p=System.getProperties();?

Properties?p=new?Properties();?

p.put("mail.smtp.host",?host);?

/*?

p.put("mail.smtp.auth",?"true");?

//创建一个密码验证器?

Authenticator?auth?=?new?MyAuthenticator(username,?password);?

//获得Session?

Session?session=Session.getDefaultInstance(p,auth);?

//////////////////sesion获得Transprot方法?

Session?session=Session.getDefaultInstance(p,null);?

session.setDebug(true);?

/////////////////////?

//创建Message信息?

MimeMessage?message=new?MimeMessage(session);?

//创建邮件发送者地址?

Address?fromAD?=?new?InternetAddress(from,"李建勋");?

//nternetAddress(from)?

//设置邮件发送者?

message.setFrom(fromAD);?

//创建邮件的接收地址?

Address?toAD?=?new?InternetAddress(to);?

//创建抄送人数组?

Address?toCAD1=new?InternetAddress(toCC1);?

//设置邮件的接收地址?

message.setRecipient(Message.RecipientType.TO,toAD);?

message.addRecipients(Message.RecipientType.CC,toCs?);?

//设置发送时间?

message.setSentDate(new?Date());?

//设置主题?

//设置消息正文,文本??

message.setText("Welcome?To?JavaMail");?

//设置HTML内容?

抄送人java代码的简单介绍-图3

//?MimeMultipart类是一个容器类,包含MimeBodyPart类型的对象??

Multipart?mainPart?=?new?MimeMultipart();?

//创建一个包含HTML内容的MimeBodyPart?

BodyPart?body=new?MimeBodyPart();?

//设置html内容?

//将MimeMultipart设置为邮件内容?

mainPart.addBodyPart(body);?

message.setContent(mainPart);?

///////////////////////sesion获得Transprot?

Transport?transport=session.getTransport("smtp");?

transport.connect(host,?username,?password);?

transport.sendMessage(message,message.getAllRecipients());?

//////////////////////?

//?Transport.send(message);?

public?static?void?main(String[]?args)?throws?MessagingException,?UnsupportedEncodingException?{?

send();?

此时此刻呢是MyAuthenticator类[java]?view?plaincopy

import?javax.mail.PasswordAuthentication;?

public?class?MyAuthenticator?extends?Authenticator{?

/*在使用Authenticator这个抽象类时,我们必须采用继承该抽象类的方式,并且该继承类必须具?

*?有返回PasswordAuthentication对象(用于存储认证时要用到的用户名、密码)getPasswordAuthentication()?

*?方法.并且要在Session中进行注册,使Session能够了解在认证时该使用哪个类.?

*?*/?

String?username=null;?

String?password=null;?

public?MyAuthenticator(){?

public?MyAuthenticator(String?username,String?password){?

this.username=username;?

this.password=password;?

public?PasswordAuthentication?getPasswordAuthentication(){?

return?new?PasswordAuthentication(username,?password);?

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章