⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mailheader.java

📁 JAVA邮件系统
💻 JAVA
字号:

import java.util.Date;
import java.lang.String;
import java.util .Vector ;
import java.util.Random ;

public class MailHeader
{
	//members
	static String MyBoundaryStr = "MAIL_BY_LZS1414_20000425";
	
	//mail from;
	String m_sFrom;
	
	//we support muti_user mail address
	//you can give the mail address in a str
	//each address are divided by , ; or blank .
	String m_sToStr;
	String m_sCcStr;
	String m_sBccStr;
	
	//we support muti_user mail address
	//the real address are in the array.
	Vector m_sTo;
	Vector m_sCc;
	Vector m_sBCc;

	String m_sSubject;
	Date   m_Time;
	String m_sGetDate;
	public void setDateString(String sDate){
		m_sGetDate = sDate;
	}
	public String getDateString( ){
		return m_sGetDate ;
	}
	
	String m_sBoundary;
	
	public String GetFrom(){
		return m_sFrom;
	};
	public String GetBoundary(){
		return m_sBoundary;
	}
	public void SetFrom( String sfrom ){
		m_sFrom = sfrom;
	};
	public int GetToNum(){
		return m_sTo.size() ;
	};
	public String GetToAdd(int index){
		return (String)(m_sTo.elementAt (index));
	};
	public void SetTo( String sTo ){
		m_sToStr =sTo;
	};
	public String GetTo(  ){
		return m_sToStr;
	};
	public int GetCcNum(){
		return m_sCc.size() ;
	};
	public String GetCcAdd(int index){
		return (String)(m_sCc.elementAt (index));
	};
	public void SetCc( String sCc ){
		m_sCcStr =sCc;
	};
	public String GetCc(  ){
		return m_sCcStr ;
	};
	public int GetBCcNum(){
		return m_sBCc.size() ;
	};
	public String GetBCcAdd(int index){
		return (String)(m_sBCc.elementAt (index));
	};
	public void SetBCc( String sBCc ){
		m_sBccStr =sBCc;
	};
	
	public String GetSubject(){
		return m_sSubject;
	};
	public void SetSubject( String sSub ){
		m_sSubject = sSub;
	};
	
	public boolean CheckData(){
		if( GetToNum()==0 )
			return false;
		return true;
	};
	
	public void SetData(String sTo,String sFrom,String Sub,
						String sCc,String sBCc){
		m_sToStr = sTo;
		m_sFrom  = sFrom ;
		m_sCcStr = sCc ;
		m_sBccStr = sBCc ;
		m_sSubject = Sub;
		
		m_sTo = new  Vector(5,5);
		m_sCc = new Vector(5,5);
		m_sBCc =new  Vector(5,5);
		SplitEmailAddress(m_sToStr,m_sTo);
		SplitEmailAddress(m_sCcStr,m_sCc);
		SplitEmailAddress(m_sBccStr,m_sBCc);
	};
	
	public boolean SplitEmailAddress( String sAdd , Vector sAddress ){
		if( sAdd == null )
			return false;
		if( sAdd.indexOf ('@')==-1 )
			return false;
		   
		int nBreak ,nBreak1;
		String subStr;
		nBreak = sAdd.indexOf(' ');
		nBreak1 = sAdd.indexOf(',');
		
		if( nBreak1!=-1 && nBreak>nBreak1 )
			nBreak = nBreak1;
		if( nBreak==-1 )
			nBreak = nBreak1;
		while( nBreak != -1 ){
			try{
				subStr = sAdd.substring (0,nBreak);
				//not valid;
				if( sAdd.indexOf ('@')==-1 ){
					if( nBreak + 1 >= sAdd.length()-1 )
						return true;
					sAdd = sAdd.substring( nBreak + 1 , sAdd.length() ) ;
					continue;
				}
				else{//address
					String s1 = DealWithAddressStr(subStr) ;
					sAddress.addElement ( DealWithAddressStr(subStr) );
					if( nBreak + 1 >= sAdd.length()-1 )
						return true;
					sAdd = sAdd.substring( nBreak + 1 , sAdd.length() ) ;
				}
			}catch(Exception sEx){
				return false;
			}
			
			nBreak = sAdd.indexOf(' ');
			nBreak1 = sAdd.indexOf(',');
			if( nBreak1!=-1 && nBreak>nBreak1 )
				nBreak = nBreak1;
			if( nBreak==-1 )
				nBreak = nBreak1;
		}
		if( sAdd != null && sAdd.indexOf ('@')!=-1 ){
			sAddress.addElement ( DealWithAddressStr( sAdd ) );
			System.out.println (DealWithAddressStr( sAdd ) );
			String s1 = DealWithAddressStr(sAdd) ;
		}
		
		return true;
	};
	
	String DealWithAddressStr(String sAdd)
	{
		int nLen = sAdd.length ();
		if( sAdd==null || nLen<2 )
			return sAdd;
		if( sAdd.charAt (0)=='\'' && sAdd.charAt (nLen-1)=='\'' )
			return sAdd.substring (1,nLen-1);
		if( sAdd.charAt (0)=='\"' && sAdd.charAt (nLen-1)=='\"' )
			return sAdd.substring (1,nLen-1);
		if( sAdd.charAt (0)=='<' && sAdd.charAt (nLen-1)=='>' )
			return sAdd.substring (1,nLen-1);
		return sAdd;
	}
	
	//
	public String CreateEMailHeadInfoForSend(){
		Random random = new Random(System.currentTimeMillis());
		int nRandom = random.nextInt ();
		StringBuffer sReturn=new StringBuffer();
/*		if( GetToNum() == 0 )
			return null;
		//send from;
		sReturn.append("MAIL From: <");
		sReturn.append(m_sFrom);
		sReturn.append(">\r\n");
		
		//send to;
		for( int i = 0; i <GetToNum() ;i++ )
		{
			sReturn.append("RCPT TO:<");
			sReturn.append(GetToAdd(i));
			sReturn.append(">\r\n");
		}
		//send Cc;
		for( int i = 0; i <GetCcNum() ;i++ )
		{
			sReturn.append("RCPT TO:<");
			sReturn.append(GetCcAdd(i));
			sReturn.append(">\r\n");
		}
		//send Bcc;
		for( int i = 0; i <GetBCcNum() ;i++ )
		{
			sReturn.append("RCPT TO:<");
			sReturn.append(GetBCcAdd(i));
			sReturn.append(">\r\n");
		}
	
		//send data tag;
		sReturn.append("DATA\r\n");
*/		
		//add from;
		sReturn.append("From: <");
		sReturn.append(m_sFrom);
		sReturn.append(">\r\n");
		
		//add to;
		if( GetToNum()==0 )
			return null;
		for( int i = 0; i < GetToNum();i++ )
		{
			if(i==0){
				sReturn.append("To: <");
				sReturn.append(GetToAdd(i));
				sReturn.append(">");
			}				
			else{
				sReturn.append(", <");
				sReturn.append(GetToAdd(i));
				sReturn.append(">");
			}
		}
		sReturn.append("\r\n");
		//add cc;
		for( int i = 0; i < GetCcNum();i++ )
		{
			if(i==0){
				sReturn.append("Cc: <");
				sReturn.append(GetCcAdd(i));
				sReturn.append(">");
			}				
			else{
				sReturn.append(", <");
				sReturn.append(GetCcAdd(i));
				sReturn.append(">");
			}
		}
		if( GetCcNum()>0 )
			sReturn.append("\r\n");
		//Date;
		m_Time = new Date(System.currentTimeMillis());
		sReturn.append("Date: ");
		sReturn.append(m_Time.toString()); 
		sReturn.append("\r\n");
		
		// Subject;
		sReturn.append("Subject: ");
		sReturn.append(m_sSubject); 
		sReturn.append("\r\n");

		//application;
		sReturn.append("X-Mailer: Pecan_Mail\r\n");

		//mime ver;
		sReturn.append("MIME-Version: 1.0\r\n");
		
		//content type
		sReturn.append("Content-Type: multipart/mixed; boundary=");
		sReturn.append(MyBoundaryStr);
		sReturn.append(nRandom);
		sReturn.append("\r\n");

		StringBuffer sReturn1= new StringBuffer(MyBoundaryStr);
		sReturn1.append(nRandom);
		m_sBoundary = sReturn1.toString();
		return sReturn.toString();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -