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!"); } }