envelope.java

来自「自己写的java版的mailclient」· Java 代码 · 共 69 行

JAVA
69
字号
import java.io.*;
import java.net.*;
import java.util.*;
/**
 * SMTP envelop for message
 */
public class Envelope {
	/*smtp-sender of the message (from-header)*/
	public String sender;
	/* SMTP-recipient ,or contents of To-header.*/
	public String recipient;
	/* Target MX-HOST*/
	public String destHost;
	public InetAddress destAddr;
	/*message content*/
	public Message message;
	/* constructor*/
	public Envelope(Message message){
		/* get receiver and sender*/
		sender = message.getFrom();
		recipient = message.getTo();
		
		/* get messge*/
		this.message = escapeMessage(message);
		int atat = recipient.lastIndexOf('@');
		destHost = recipient.substring(atat+1);
		
		/*map the name to an ip-address*/
		try{
			destAddr = InetAddress.getByName(destHost);
		}catch(Exception e){
			System.out.println("UNKOWN HOST :"+destHost);
			System.out.println(e);
			return;
		}
		return;
	}
		/**
		 * overwrite the toString()
		 */
		public String toString(){
			String res = "Sender: " + sender + '\n';
			res += "Recipient: " + recipient + '\n';
			res += "MX-host: " + destHost +", address: " + destAddr + '\n';
			res += "Message: "+'\n';
			res += message.toString();
			return res;
		}
	/**
	 * escape the message 
	 * @param message
	 * @return
	 */
	private Message escapeMessage(Message message){
		String escapeBody = "";
		String token;
		StringTokenizer parser = new StringTokenizer(message.body,"\n",true); 
        while(parser.hasMoreTokens()){
        	token = parser.nextToken();
        	if(token.startsWith(".")){
        		token = "." + token;
        	}
        	escapeBody +=token;
        }
        message.body = escapeBody;
        return message;
	}
}

⌨️ 快捷键说明

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