首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

各位大侠!如果在系统中实现收发邮件啊该怎么处理

2012-02-25 
各位大侠!如果在系统中实现收发邮件啊??各位,如何在管理系统中实现邮箱的程序啊!![解决办法]package duba.

各位大侠!如果在系统中实现收发邮件啊??
各位,如何在管理系统中实现邮箱的程序啊!!

[解决办法]
package duba.mail;

import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;

public class MailExample {

public static void main (String args[]) throws Exception {

String host = "smtp.163.com"; //发件人使用发邮件的电子信箱服务器
String from = "1@163.com"; //发邮件的出发地(发件人的信箱)
String to = "2@qq.com"; //发邮件的目的地(收件人信箱)

// Get system properties
Properties props = System.getProperties();

// Setup mail server
props.put("mail.smtp.host", host);

// Get session
props.put("mail.smtp.auth", "true"); //这样才能通过验证

MyAuthenticator myauth = new MyAuthenticator("user", "pwd"); //user是发送邮件的用户名,pwd密码
Session session = Session.getDefaultInstance(props, myauth);

//session.setDebug(true);

// Define message
MimeMessage message = new MimeMessage(session);


// Set the from address
message.setFrom(new InternetAddress(from));

// Set the to address
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(to));

// Set the subject
message.setSubject("测试程序!");

// Set the content
message.setText("这是用java写的发送电子邮件的测试程序!");

message.saveChanges();

Transport.send(message);

}
}



[解决办法]
例二:
public sendMail() { 
setSmtpHost(getConfig.mailHost);//如果没有指定邮件服务器,就从getConfig类中获取 
createMimeMessage(); 


public sendMail(String smtp){ 
setSmtpHost(smtp); 
createMimeMessage(); 

/** 
* @param hostName String 
*/ 
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主机 


/** 
* @return boolean 
*/ 
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邮件对象!"); 
try{ 
mimeMsg = new MimeMessage(session); //创建MIME邮件对象 
mp = new MimeMultipart(); 
return true; 

catch(Exception e){ 
System.err.println("创建MIME邮件对象失败!"+e); 
return false; 



/** 
* @param need boolean 
*/ 
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"); 



/** 
* @param name String 
* @param pass String 
*/ 

public void setNamePass(String name,String pass) { 
username = name; 
password = pass; 

/** 
* @param mailSubject String 
* @return boolean 
*/ 

public boolean setSubject(String mailSubject) { 


System.out.println("设置邮件主题!"); 
try{ 
mimeMsg.setSubject(mailSubject); 
return true; 

catch(Exception e) { 
System.err.println("设置邮件主题发生错误!"); 
return false; 



/** 
* @param mailBody String 
*/ 
public boolean setBody(String mailBody) { 
try{ 
BodyPart bp = new MimeBodyPart(); 
bp.setContent(""+mailBody,"text/html;charset=GB2312"); 
mp.addBodyPart(bp); 
return true; 
}
catch(Exception e){ 
System.err.println("设置邮件正文时发生错误!"+e); 
return false; 


/** 
* @param name String 
* @param pass String 
*/ 
public boolean addFileAffix(String filename) { 
System.out.println("增加邮件附件:"+filename); 
try{ 
BodyPart bp = new MimeBodyPart(); 
FileDataSource fileds = new FileDataSource(filename); 
bp.setDataHandler(new DataHandler(fileds)); 
bp.setFileName(fileds.getName()); 
mp.addBodyPart(bp); 
return true; 
}
catch(Exception e){ 
System.err.println("增加邮件附件:"+filename+"发生错误!"+e); 
return false; 



/** 
* @param name String 
* @param pass String 
*/ 
public boolean setFrom(String from) { 
System.out.println("设置发信人!"); 
try{ 
mimeMsg.setFrom(new InternetAddress(from)); //设置发信人 
return true; 

catch(Exception e) 
{ return false; }
}
/** 
* @param name String 
* @param pass String 
*/ 

public boolean setTo(String to){ 
if(to == null)return false; 
try{ 
mimeMsg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to)); 
return true; 

catch(Exception e) 
{ return false; } 

/** 
* @param name String 
* @param pass String 
*/ 
public boolean setCopyTo(String copyto) 

if(copyto == null)return false; 
try{ 
mimeMsg.setRecipients(Message.RecipientType.CC,(Address[])InternetAddress.parse(copyto)); 
return true; 

catch(Exception e) 
{ return false; } 

/** 
* @param name String 
* @param pass String 
*/ 
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.send(mimeMsg); 
System.out.println("发送邮件成功!"); 
transport.close(); 
return true; 

catch(Exception e) 

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


/** 
* Just do it as this 
*/ 
public static void main(String[] args) { 
String mailbody = ""+ "csdn"; 
sendMail themail = new sendMail("smtp.msn.com"); 
themail.setNeedAuth(true); 
if(themail.setSubject("标题") == false) return; 
if(themail.setBody(mailbody) == false) return; 
if(themail.setTo("gates@msn.com") == false) return; 


if(themail.setFrom("bill@msn.com") == false) return; 
if(themail.addFileAffix("c:\\boot.ini") == false) return; 
themail.setNamePass("user","password"); 
if(themail.sendout() == false) return; 
}


[解决办法]
这个问题我也遇到过,我现在加了一个群,这个群人气较好,也的确有高手,不但可以交流问题,而且还可以接项目赚钱,QQ群号是:陆!肆!柒!玖!捌!柒!伍!伍,不要说我做广告,看看便知,如需要的话加入试试,如果你发现好的交流群也别忘了告诉我啊!呵呵!
[解决办法]
org.apache.commons.mail.HtmlEmail
里面有个send方法

热点排行