如何用ABAP實現自動發送外部郵件

在dev系統上試驗。根據老白博客上的步驟來做的,加進了自己的理解。

1.      配置參數文件Profile parameter(RZ10)

 

點修改,新建參數icm/server_port_1 賦值爲“ PROT=SMTP,PORT=25”

a)icm/server_port_<*> = PROT=SMTP,PORT=<port>

事務碼RZ10進去,選擇實例參數文件,選擇擴展。來到參數配置界面,默認情況下已經有一個參數文件icm/server_port_0 = PORT=HTTP,PORT=XXXX(每個服務可能不一樣),那麼這裏的<*>就是要根據你的參數文件的具體情況,如果已經有了_0,這裏你就需要設成_1,以此類推,PORT一般設置成25,這裏還有一個選項是TIMEOUT可以設定等待郵件服務器回覆時間的最大值。這裏我的參數文件時:icm/server_port_1 = PROT=SMTP,PORT=25

新建參數is/SMTP/virt_host_0 賦值爲“ *:25;”

b)is/SMTP/virt_host_<*> = <host>:<port>,<port>,...;
定義虛擬郵件主機,主要用來接收郵件的,_<*>的設置通上。要注意,參數值最後是有一個分號的。這裏我的參數文件是is/SMTP/virt_host_0 = *:25;

完成後保存,激活。配置完需要重啓服務,參數才能生效

2.配置用戶(SU01)

a)對於每一個client,需要創建一個用戶作爲郵件的接收者,比如我創建了一個用戶叫做MAILUSER,用戶的類型設置爲service,並給該用戶賦profile S_A.SCON

打開SU01在登錄數據標籤中,我修改了自己的用戶名的用戶類型diaglog類型爲service類型。

注:第一次我把用戶類型改爲了系統用戶,第二天再登錄系統時提示用對話用戶登錄。所以記得把類型修改回來,否則重新登錄系統時可能登錄不上。因爲系統用戶和通訊用戶不允許使用SAP GUI登錄。service類型可以使用SAP GUI登錄。詳見sap用戶類型.txt

b)對於每個用戶來說,如果需要發送或者接收郵件的話,也需要在爲其配置email地址,在su01中的地址標籤的E-mail中配置即可,通訊方式爲remote email

3.client assignment(tcode:SICF)執行這個事務碼,進去後

 

點執行

 

進去後可以看到STMP servers,默認應該是灰色的,雙擊SMTP servers,配置以下幾個地方

a)      Host data 主機數據,對於 Profile Parameter Number,輸入 "is/STMP/virt_host_<*>"中的<*>的值,一般可能是0,如果不存在的話,下面會有提示的。

 

b)      Service data(貌似就是上圖的登錄數據,反正我就是在那裏填的),輸入接收郵件的相關信息,client以及前面創建的MAILUSER和密碼、語言等信息。

c)      Handler list,在第一個位置輸入CL_SMTP_EXT_SAPCONNECT
   

完成以上配置後,右鍵點擊SMTP servers,選擇激活。

     4.SAPconnect administration(tcode:SCOT)


        a)菜單欄設置----Default domain,此處我寫的是公司的郵件服務器

這個郵件的默認域名比如sap.com,那麼如果在你發送郵件的時候收件人地址如果只寫test的話,系統會自動加上@sap.com,如果收件人地址是全的話,這個domain不維護關係也不大
        b) 維護SMTP節點:視圖----節點Nodes—打開節點

 

或者雙擊上上圖SMTP後彈出對話框,維護以下信息


勾上 "Node in user".

在MAIL HOST和MAIL PORT下面,指定發送郵件服務器的地址,比如如果是163的話,就應該是smtp.163.com

這裏MAIL HOST填寫我公司郵件服務器地址,MAIL PORT填寫25

選中Internet的Set,彈出新對話框,指定接收地址的地址區域,一般用*表示所有郵件都用SMTP來發送。其他信息用默認。


(這裏SAPconnect的信息可以有兩種方式顯示的,如果雙擊SMTP節點彈出的是JOB的信息的話,選擇菜單中SYSTEM STATUS,切換到爲另一種顯示方式即可。)

c)Send job,選擇菜單中的視圖View-->職務Jobs,可以檢查是否已經有Jobs被調度了

選擇Jobs->Create,並指定Job名稱,點執行按鈕 

選擇SAP&CONNECTALL變式,並選擇Schedule Job 

選擇 Schedule periodiacally定期計劃,指定時間間隔,比如10分鐘,選擇創建。 

到這裏,基本配置成功了。

可以在SBWP中,選擇發送郵件,來測試配置是否成功,輸入收件人的郵件地址,點擊發送。如果配置成功的話,收一下郵件,應該收到了來自登陸SAP GUI的賬號中配置的郵件地址的郵件了。

PS:一開始只可以往公司郵箱發郵件,往外部郵箱發送時顯示發送成功但總是收不到。把scot----smtp節點裏的mail host改成公司郵件服務器的IP即可收到(不知爲啥)。外部郵箱收到sap發送的郵件。但是,發往網易的郵件有收到,發往雅虎的郵件卻沒收到。

 

注:如果只是使用SAP發送而不接收外部回覆回來的郵件,即相當於一個Mail Client的功能,只需要2、4兩步就可以了,也不需要更改系統參數。而且最重要的工作是Mail服務器的設置,把SAP Application的IP放到白名單,不要密碼驗證。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章