1. 程式人生 > >Apache James郵件伺服器配置及傳送外網郵件

Apache James郵件伺服器配置及傳送外網郵件

最近公司做的一個專案,使用者註冊需要郵箱驗證,本想呼叫別人的伺服器,呼叫apache自帶的email包實現!

但Boos發話,要自己搭建一個郵箱伺服器。。。

先前使用了winMail,但是收費的,最終不了了之

後續又看了sendMail,只不過sendMail是在linux下,而我們的專案是部署在windowss 平臺下...

最終選定了Apache James,個人認為還算好用

在網上整理了整理,最終還是想寫個筆記,分享給大家

1.環境搭建

     下載JDK

     下載javamail相關jar包

      如果下載不到,可到CSDN資源裡去下載,專門上傳了一份

2. 啟動james

     進入james安裝目錄:C:\james-2.3.2\bin

     執行run.bat

     預設我們不更改C:\james-2.3.2\apps\james\SAR-INF 下的config.xml

     如果不修改,郵件伺服器的域名預設為localhost,則跳過第三步驟

     注意:C:\james-2.3.2\apps\james\SAR-INF 下的config.xml配置檔案是在james第一次啟動時生成的

3. 修改james-2.3.2\apps\james\SAR-INF\config.xml配置檔案

    (1)查詢替換所有的localhost為你的域名,比如bjservice.com
            【如果你沒有一個域名,那麼可以在system32/drivers/etc/hosts檔案中新增一個偽域名用於測試,       192.168.0.45  bjservice.com】

    (2)找到

…… 
<postmaster>[email protected]</postmaster> 
…… 
<servernames autodetect="true" autodetectIP="true"> 
	<servername>localhost</servername> 
</servernames> 
…… 


     把localhost該成你自己想要的郵箱域名, 把自動探測IP屬性設定為“false”這裡假設改成 bjservice.com 如果開了一個帳號 bjxc ,那麼他的郵件地址就是      bjxc

@bjservice.com 修改結果如下:

…… 
<postmaster>[email protected]</postmaster> 
…… 
<servernames autodetect="false" autodetectIP="false"> 
	<servername>bjservice.com</servername> 
</servernames> 
……

     (3)註釋掉以下程式碼

<!--mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor"> 
	<processor> relay-denied </processor> 
	<notice>550 - Requested action not taken: relaying denied</notice> 
</mailet-->


     (4)配置DNS Server
               在cmd中用ipconfig /all 命令檢視你的dns server ip
               DNS Servers . . . . . . . . . . . : 202.106.46.151

                                                                202.106.195.68

              如果是偽域名,還需要將本機地址也列進去,最好放到第一位。<server>192.168.0.45</server>

               新增如下: 

   <dnsserver>
      <servers>
          <server>192.168.0.45</server>
	 <server>202.106.46.151</server>
	 <server>202.106.195.68</server>
      </servers>
      <autodiscover>false</autodiscover>
      <authoritative>false</authoritative>
      <maxcachesize>50000</maxcachesize>
   </dnsserver>

     (5)配置smtp server,pop3 server等
              查詢所有myMailServer,替換為你的域名。如:
             <helloName autodetect="false">myMailServer</helloName>,將myMailServer修改為你的域名。比如:bjservice.com

     (6)設定smtpserver  

                開啟smtp認證 <authRequired>true</authRequired>

     James服務配置完成

      注:以上設定好之後,重啟james服務

四.建立郵件帳號

     進入控制檯命令:C:\james\bin>telnet localhost 4555

     然後將進入:JAMES Remote Administration Tool 2.3.1
                             Please enter your login and password
                             Login id:

    預設的登陸id 為root 密碼也為 root ,登陸成功後結果如下:

   

    建立新使用者的命令是:adduser username password,如下圖

   

    賬號建立成功後,退出管理器我們就可以開始我們的Mail應用了。

   程式碼如下:

package test;

import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;


public class MyFirstMail {
	/**
	 * 傳送郵件
	 * @param contents	郵件內容
	 * @param toEmail	收件人
	 * @throws EmailException
	 */
	public static void sendMail(String contents, String toEmail) throws EmailException {
		try {
			HtmlEmail email = new HtmlEmail();
			
			// 設定smtp伺服器
			email.setHostName("192.168.0.45"); 
			
			// 設定收件人
			email.addTo(toEmail);
			
			//傳送的郵件地址
			email.setFrom("[email protected]", "xxx");
			
			// 設定smtp伺服器的認證資料資訊
			email.setAuthentication("bjtest", "123456"); 
			
			email.setSubject("標題");
			
			// 設定是否使用SSL
			//email.setSSL(Boolean.TRUE);
			
			// 設定SSL埠gmail埠465、其它25
			//email.setSslSmtpPort("465"); 
			
			//設定Debug輸出資訊
			//email.setDebug(true); 
			
			//設定內容的語言集
			email.setCharset("UTF-8");
			
			email.setHtmlMsg(contents);
			
			email.send();
			
			System.out.println("郵件傳送成功");
		} catch (Exception e) {
			System.out.println("郵件傳送失敗");
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) throws EmailException {
		String str = "<html>您好,xxx!</html>";
		String email="[email protected]";
		sendMail(str,email);;
	}
}

  OK,大功告成!!!

  路的盡頭仍然是路 只要你願意走...

相關推薦

Apache James郵件伺服器配置傳送郵件

最近公司做的一個專案,使用者註冊需要郵箱驗證,本想呼叫別人的伺服器,呼叫apache自帶的email包實現! 但Boos發話,要自己搭建一個郵箱伺服器。。。 先前使用了winMail,但是收費

Apache James郵件伺服器介紹配置傳送郵件

      現在的專案往往都需要傳送郵件驗證,郵件內容推送等功能。所以我就專門研究Apache中James,這是一個專門用來做郵件伺服器的開源框架。      Apache James(Java Ap

James郵件伺服器簡單介紹配置傳送郵件

因為微貿網使用者已經超過3萬個使用者,需要每天給使用者推薦訂閱了相關關鍵詞的詢盤。剛開是使用了第三方的郵箱進行傳送,有限制而且不能那個多發,所以就想到了要搭建自己的郵箱伺服器。摸索了兩天終於搞定了。廢話不多說,進入正題。 一、簡介Apache James(Java Ap

利用外部smtp傳送郵件;linux傳送郵件;搭建郵件伺服器

利用外部smtp傳送郵件: 方法1: (推薦方法) http://blog.csdn.net/zhuying_linux/article/details/7091688  推薦方法,注意文中的命令列“-”複製出來後需要替換成英文的“-”。 測試命令: /usr/local

伺服器配置DDNS實現固定域名訪問

問題描述 在外網訪問區域網內的伺服器時,若外網路由器IP非固定,將導致服務因IP地址變化而經常無法訪問。 前提條件 1、內網伺服器可以聯外網 2、外網接入路由器已開通地址埠對映 3、採用PubYun的動態域名服務 步驟簡述 1、註冊PubY

james使用(一):windows環境下james3.0.1版本郵件伺服器搭建配置

1.介紹james是apache基金會下一款免費的提供pop3、stmp的開源免費郵件伺服器,其最新版本為james sever 3.0,網上充斥著許多2.3版本的配置,3.0使用了spring的架構,配置上有些許不同,在配置過程中爬了很多坑,特此記錄,給小夥伴們指明方向。後

apache+svn+jira伺服器配置(通過80埠實現訪問)

網上的svn與jira的整合文章很多也很雜,但大多千篇一律,並沒有解決我需要解決的問題,比如:配置完成後,還是不能從外網通過80埠同時訪問svn和jira兩種應用。而且還需要另外下載安裝Apache,配置起來也很麻煩。這不是我想要的。 本文主要解決的問題是,在內網架設ap

區域網中搭建James伺服器並實現與收發郵件

一、準備工作 區域網中有兩臺電腦都用Windows XP SP2系統+JDK1.6.0_02,一臺PCA,一臺PCB,PCA當伺服器,PCB當客戶端測試用,當然PCA也可同時充當客戶端。 Apache James(Java Apache Mail Enterprise S

Linux,郵件伺服器配置

Linux,郵件伺服器配置 用Linux配置區域網內的郵件伺服器。postfix(傳送,這裡不使用sendmail,sendmail和postfix不能同時開啟),dovecot(接收),squirrelmail(基於phpweb的郵件應用)。 郵件伺服器的域名為 mail.demo

Mac Apache Tomcat WebServer 伺服器配置

1、配置準備工作 1)配置伺服器準備工作 在 Finder 中建立一個 “workspace” 的資料夾,可直接建立在 /Users/QianChia(當前使用者名稱)目錄下。 下載相關軟體

juniper srx 240 cluster 內伺服器埠釋出到配置例項

========================================================================================================================-----------------------------------

Centos安裝NFS伺服器配置掛載教程

一、環境介紹: 伺服器:centos 192.168.1.225 客戶端:centos 192.168.1.226 二、安裝: NFS的安裝配置: centos 5 : yum -y install nfs-utils portmap centos 6

配置郵件郵件互發

   配置內網郵件伺服器和外網郵件伺服器互發郵件    郵件系統的主要功能是傳遞郵件,使使用者通過電子郵件來交流彼此的資訊,郵件傳輸功能決定了郵件的處理和傳遞方式。Exchange 2007的管理員可以通過配置中心傳輸伺服器來實現企業內部郵件與外部郵件的溝通,從而達到資訊的

Centos7 安裝搭建SVN伺服器 配置程式碼同步web根目錄

一丶 SVN簡介 SVN是Subversion的簡稱,是一個開放原始碼的版本控制系統,相較於RCS、CVS,它採用了分支管理系統,它的設計目標就是取代CVS。網際網路上很多版本控制服務已從CVS遷移到Subversion。說得簡單一點SVN就是用於多個人共同開

gitlab 郵件伺服器配置

一、修改 /etc/gitlab/gitlab.rb 檔案,新增郵件伺服器資訊 SMTP settings 例如163 郵件伺服器 gitlab_rails[‘smtp_enable’] =

IBM Lotus Domino 郵件伺服器配置攻略

轉自: http://tech.sina.com.cn/h/2008-09-04/0600792843.shtml 作者:中關村線上 孫鵬 第1頁:系統環境     上期我們講解了IBM Lotus Domino Server的首次配置過程,這期我們就來看一下IBM L

exchange 2003配置收發郵件的條件

我們不建議您為Exchange 伺服器使用動態IP,這樣可能會導致您的伺服器被列入黑名單。 Exchange 2003 伺服器接受入站郵件的最小條件如下: ·         可以通過Internet 訪問Exchange 伺服器的25埠。該訪問不能被防火牆或者其他網路

Windows基於Apache的svn伺服器配置

  參照 http://bbs.iusesvn.com/thread-158-1-1.html文章,經過svn的洗刷,終於把它配置成功,現在把我所配置的方法,記錄下來,以供其他有需要的朋友參考,需要改進的地方,請指教! 一 環境   作業系統:windows2003 se

Tomcat 伺服器配置遠端除錯和不同web專案session共享方法以及設定TOMCAT的記憶體

tomcat環境變數配置 classpath = ./;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;%TOMCAT_HOMT%/common/lib/servlet-api.jar;%TOMCAT_HOME%/com

Apache開啟虛擬機器配置偽靜態規則

學習記錄,配置Apache2.4版本支援虛擬機器並啟用偽靜態規則。1、修改配置檔案先編輯Apache的conf目錄下的httpd.conf檔案。去除# LoadModule rewrite_module modules/mod_rewrite.so的註釋,開啟mod_rewr