Linux下Apache James 邮件安装与发送程序

-

1. 下载:apache-james-3.0-beta3-app.tar.gz,
URL是http://james.apache.org/download.cgi
2. 解压 tar -zxf
apache-james-3.0-beta3-app.tar.gz
3. 启动
    cd
apache-james-3.0-beta3-app/bin
    ./run.sh
    ./james start
4.
添加域名
    cd apache-james-3.0-beta3-app/bin
    ./james-cli.sh  --host
127.0.0.1 adddomain localhost
5. 添加用户
    cd
apache-james-3.0-beta3-app/bin
    ./james-cli.sh  --host 127.0.0.1 adduser
test@asbinms.com test


6. 通过邮件服务器发送邮件(Java实现)


EmailAuthenticator.java

package mail;

import javax.mail.Authenticator;   
import javax.mail.PasswordAuthentication;   

public class EmailAuthenticator extends Authenticator {   
    private String m_username = null;   
  
    private String m_userpass = null;   
  
    void setUsername(String username) {   
        m_username = username;   
    }   
  
    void setUserpass(String userpass) {   
        m_userpass = userpass;   
    }   
  
    public EmailAuthenticator(String username, String userpass) {   
        super();   
        setUsername(username);   
        setUserpass(userpass);   
    }   
  
    public PasswordAuthentication getPasswordAuthentication() {   
        return new PasswordAuthentication(m_username, m_userpass);   
    }   
}  


SendMail.java

package mail;

import java.util.Date;
import java.util.Properties;

import javax.mail.Authenticator;
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;
import javax.mail.internet.MimeUtility;

public class SendMail {

	private String mailServer, username, password;
	private Session mailSession;
	private Properties prop;
	private Message message;

	/**
	 * // 设置邮件服务器相关
	 * @param mailServer: 
	 * @param username: 
	 * @param password: 
	 */
	public SendMail(String mailServer, String username, String password) {
		this.mailServer = mailServer;
		this.username = username;
		this.password = password;
	}

	/**
	 * 
	 * @param to : 
	 * @param mailSubject:
	 * @param mailContent
	 */
	public void send(String to, String mailSubject, String mailContent) {
		EmailAuthenticator mailauth = new EmailAuthenticator(username, password);
		// 设置邮件服务器
		prop = System.getProperties();
		prop.put("mail.smtp.auth", "true");
		prop.put("mail.smtp.host", mailServer);
		// 产生新的Session服务
		mailSession = mailSession.getDefaultInstance(prop, (Authenticator) mailauth);
		message = new MimeMessage(mailSession);

		try {
			message.setFrom(new InternetAddress(username)); // 设置发件人
			message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));// 设置收件人
			message.setSubject(mailSubject);// 设置主题
//			message.setContent(mailContent, "text/plain");// 设置内容,中文乱码,用下面的方法
		
			// 设置内容
			Multipart multipart = new MimeMultipart();
			MimeBodyPart mimeBodyPart = new MimeBodyPart(); 			
			mimeBodyPart.setText(mailContent); 			
//			mimeBodyPart.setFileName(MimeUtility.encodeText(mailContent, "GBK", "B")); //对邮件头采用base64方式编码   
			multipart.addBodyPart(mimeBodyPart);   
			message.setContent(multipart);
			
			// 设置日期
			message.setSentDate(new Date());
			Transport tran = mailSession.getTransport("smtp");
			tran.connect(mailServer, username, password);
			tran.send(message, message.getAllRecipients());
			tran.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		SendMail mail;
		mail = new SendMail("localhost", "test@localhost", "test");
		System.out.println("sending......");
		mail.send("test@localhost", "-=> < tttt", "xx-=> <  xxxxx");
		System.out.println("finished!");
	}
}
原文地址:https://www.cnblogs.com/liuyou/p/2316947.html