当前位置: 技术问答>java相关
30分求javamail的验证和收邮件(再线)
来源: 互联网 发布时间:2015-08-05
本文导语: 求javamail的的smtp发邮件验证,和pop3收邮件。 | package ejb; import javax.mail.*; import java.util.*; import javax.mail.internet.*; import java.io.*; import javax.activation.*; public class smtpBean { String inf...
求javamail的的smtp发邮件验证,和pop3收邮件。
|
package ejb;
import javax.mail.*;
import java.util.*;
import javax.mail.internet.*;
import java.io.*;
import javax.activation.*;
public class smtpBean {
String info ; //存储出错信息
String m_user; //用于需要验证的用户名
String m_pass; //口令
String m_host; //SMTP服务器名称
int m_port; //端口号,缺省为25
String m_from; //发件人
String m_to; //收件人
String m_cc; //抄送
String m_bcc; //密送
String m_subject; //主题
String m_body; //内容体
LinkedList m_attach=null; //附件的文件名列表
public smtpBean() {
info ="" ;
m_user ="" ;
m_pass ="" ;
m_host ="" ;
m_port =25 ;
m_from ="" ;
m_to ="" ;
m_cc ="" ;
m_bcc ="" ;
m_subject ="" ;
m_body ="" ;
m_attach =null ;
}
public String getInfo() {
return info;
}
public void setInfo(String newSample) {
info = newSample;
}
//设定smtp服务器用户名(可选)
public void setUser(String user){
m_user=user;
}
//设定smtp服务器口令(可选)
public void setPass(String pass){
m_pass=pass;
}
//设定smtp的地址和端口号(可选)
public void setServer(String server,int port){
if(port>0) m_port=port;
m_host=server;
}
//设定smtp服务器地址,端口号使用缺省值
public void setServer(String server){
m_host=server;
}
//发件人
public void setFrom(String from){
m_from = from;
}
//收件人
public void setTo(String to){
m_to = to;
}
//抄送(可选)
public void setCc(String cc){
m_cc=cc;
}
//密送(可选)
public void setBcc(String bcc){
m_bcc=bcc;
}
//设置新的主题(可选)
public void setSubject(String subject){
m_subject=subject;
}
//设置信的内容,若以或开头的内容为text/html格式
public void setBody(String body){
m_body=body;
}
//可以多次添加附件,文件名最好是全路径,使用相对路径容易出错
public void attach(String attachfile){
if(m_attach==null) m_attach=new LinkedList();
m_attach.add(attachfile);
}
public boolean sendMail() throws Exception{
Properties props=System.getProperties();
props.setProperty("mail.transport.protocol","smtp"); //smtp协?
props.setProperty("mail.smtp.host",m_host); //服务器地址
props.setProperty("mail.smtp.port",""+m_port); //端口号
//认证信息
if(m_user!=null && m_pass!=null && m_user.length()>0 && m_pass.length()>0){
props.setProperty("mail.smtp.auth","true");
}
Session sess = Session.getInstance(props,null );
MimeMessage msg=new MimeMessage(sess);
//发件人
msg.setFrom(new InternetAddress(m_from));
//收件人、抄送、密送
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(m_to));
if(m_cc!=null && m_cc.length()>0)
msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(m_cc));
if(m_bcc!=null && m_bcc.length()>0)
msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(m_bcc));
//主题
if(m_subject!=null) msg.setSubject(m_subject);
//发件日期
msg.setSentDate(new Date());
//文本内容
MimeMultipart content=new MimeMultipart();
if(content==null) return false;
MimeBodyPart part;
if(m_body!=null && m_body.length()>0){
part=new MimeBodyPart();
String type="text/plain";
if(m_body.startsWith("") || m_body.startsWith("")){
type="text/html";
}
part.setText(m_body);
//以和开始的文本为text/html类型
part.setHeader("Content-Type",type);
content.addBodyPart(part);
}
//添加附件
if(m_attach!=null){
String filename;
Iterator it=m_attach.iterator();
while(it.hasNext()){
filename=(String)it.next();
if(filename==null || filename.length()0 && m_pass.length()>0){
Transport trans=sess.getTransport();
trans.connect(m_host,m_user,m_pass);
trans.sendMessage(msg,InternetAddress.parse(m_to));
//if(m_cc!=null && m_cc.length()>0){
// trans.sendMessage(msg,InternetAddress.parse(m_cc));
//}
trans.close();
} //否则,不需要用户名和口令使用静态方法发送由件
else Transport.send(msg);
return true;
}
}
import javax.mail.*;
import java.util.*;
import javax.mail.internet.*;
import java.io.*;
import javax.activation.*;
public class smtpBean {
String info ; //存储出错信息
String m_user; //用于需要验证的用户名
String m_pass; //口令
String m_host; //SMTP服务器名称
int m_port; //端口号,缺省为25
String m_from; //发件人
String m_to; //收件人
String m_cc; //抄送
String m_bcc; //密送
String m_subject; //主题
String m_body; //内容体
LinkedList m_attach=null; //附件的文件名列表
public smtpBean() {
info ="" ;
m_user ="" ;
m_pass ="" ;
m_host ="" ;
m_port =25 ;
m_from ="" ;
m_to ="" ;
m_cc ="" ;
m_bcc ="" ;
m_subject ="" ;
m_body ="" ;
m_attach =null ;
}
public String getInfo() {
return info;
}
public void setInfo(String newSample) {
info = newSample;
}
//设定smtp服务器用户名(可选)
public void setUser(String user){
m_user=user;
}
//设定smtp服务器口令(可选)
public void setPass(String pass){
m_pass=pass;
}
//设定smtp的地址和端口号(可选)
public void setServer(String server,int port){
if(port>0) m_port=port;
m_host=server;
}
//设定smtp服务器地址,端口号使用缺省值
public void setServer(String server){
m_host=server;
}
//发件人
public void setFrom(String from){
m_from = from;
}
//收件人
public void setTo(String to){
m_to = to;
}
//抄送(可选)
public void setCc(String cc){
m_cc=cc;
}
//密送(可选)
public void setBcc(String bcc){
m_bcc=bcc;
}
//设置新的主题(可选)
public void setSubject(String subject){
m_subject=subject;
}
//设置信的内容,若以或开头的内容为text/html格式
public void setBody(String body){
m_body=body;
}
//可以多次添加附件,文件名最好是全路径,使用相对路径容易出错
public void attach(String attachfile){
if(m_attach==null) m_attach=new LinkedList();
m_attach.add(attachfile);
}
public boolean sendMail() throws Exception{
Properties props=System.getProperties();
props.setProperty("mail.transport.protocol","smtp"); //smtp协?
props.setProperty("mail.smtp.host",m_host); //服务器地址
props.setProperty("mail.smtp.port",""+m_port); //端口号
//认证信息
if(m_user!=null && m_pass!=null && m_user.length()>0 && m_pass.length()>0){
props.setProperty("mail.smtp.auth","true");
}
Session sess = Session.getInstance(props,null );
MimeMessage msg=new MimeMessage(sess);
//发件人
msg.setFrom(new InternetAddress(m_from));
//收件人、抄送、密送
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(m_to));
if(m_cc!=null && m_cc.length()>0)
msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(m_cc));
if(m_bcc!=null && m_bcc.length()>0)
msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(m_bcc));
//主题
if(m_subject!=null) msg.setSubject(m_subject);
//发件日期
msg.setSentDate(new Date());
//文本内容
MimeMultipart content=new MimeMultipart();
if(content==null) return false;
MimeBodyPart part;
if(m_body!=null && m_body.length()>0){
part=new MimeBodyPart();
String type="text/plain";
if(m_body.startsWith("") || m_body.startsWith("")){
type="text/html";
}
part.setText(m_body);
//以和开始的文本为text/html类型
part.setHeader("Content-Type",type);
content.addBodyPart(part);
}
//添加附件
if(m_attach!=null){
String filename;
Iterator it=m_attach.iterator();
while(it.hasNext()){
filename=(String)it.next();
if(filename==null || filename.length()0 && m_pass.length()>0){
Transport trans=sess.getTransport();
trans.connect(m_host,m_user,m_pass);
trans.sendMessage(msg,InternetAddress.parse(m_to));
//if(m_cc!=null && m_cc.length()>0){
// trans.sendMessage(msg,InternetAddress.parse(m_cc));
//}
trans.close();
} //否则,不需要用户名和口令使用静态方法发送由件
else Transport.send(msg);
return true;
}
}
|