youdial 发表于 2015-8-1 11:39:09

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!");
}
}
页: [1]
查看完整版本: Linux下Apache James 邮件安装与发送程序