請問 如何使用smtpserver來轉發郵件? |
答題得分者是:artist1002
|
gleo
一般會員 發表:3 回覆:9 積分:7 註冊:2004-01-08 發送簡訊給我 |
|
terrychen
尊榮會員 發表:90 回覆:794 積分:501 註冊:2003-05-01 發送簡訊給我 |
|
gleo
一般會員 發表:3 回覆:9 積分:7 註冊:2004-01-08 發送簡訊給我 |
謝謝您的回答,但是您可能誤會我的意思了,我想做的是把smtpserver裡的信轉發到其它mail server上,關於我的步驟,我再詳細解釋一次好了..
1.建立一個smtp server在本機上(使用indy的範例 smtp server)
2.使用idsmtp將信寄到本機上的smtp server (這是另一支程式了)
3.將smtp server裡的信轉寄到真實mail server(例如yahoo或msn的server上)
由真實mail server去發送到真實的email address裡
然而我卡在server對server的轉送技術上,或是我的想法不正確,還請各位前輩指正..謝謝.
|
artist1002
高階會員 發表:2 回覆:155 積分:151 註冊:2002-09-26 發送簡訊給我 |
其實都是使用SMTP的通訊協定, 沒有什麼不同
不論是寄信程式寄給SMTP Server, 或是 SMTP Server寄給另一個 Server
都是使用同樣的方式來寄送.. 你已經會使用idsmtp寄信了, 可以使用相同方式來處理Server
當然寄信的對象不同, 還有需要查詢MX紀錄來取得SMTP Server位址等等 但是要實作這樣的relay smtp server還需要處理信件佇列
把收信和寄信分開, 收下來的信件經過處理後把要轉寄的信件存放在寄件佇列(通常使用檔案方式儲存)
另外寄信的部份, 就到寄件佇列去取得要寄送的信件來處理, 寄不出去的就放在失敗信件佇列另外處理(如退信機制之類的)... 另外提一點. 你的第3步驟
如果要透過yahoo或msn來幫你轉寄信件的話, 要有帳號密碼認證
你可以直接就寄信給收信人的信件主機就可以了... 發表人 - artist1002 於 2004/01/29 18:14:20
|
gleo
一般會員 發表:3 回覆:9 積分:7 註冊:2004-01-08 發送簡訊給我 |
|
artist1002
高階會員 發表:2 回覆:155 積分:151 註冊:2002-09-26 發送簡訊給我 |
引言: artist1002您好,謝謝您的回答,但因為我只用過indy裡的idsmtp及idsmtpserver,雖然我會使用idsmtp寄信出去,但是關於idsmtpserver的範例是少之又少,官方的範例更是模糊不清,至於您所說的"使用相同方式來處理Server"指的是我再建立一個idsmtp來寄嗎?還是idsmtpserver裡有更好的方式呢? 因為如果再建立一個idsmtp來寄的話,我這個舉動豈不多此一舉嗎,是不是我的想法錯誤了呢,謝謝.以下用條列方式回答 1. idsmtpserver 使負責提供stmp client的程式寄信過來的 2. idsmtpserver 不會自動幫你轉信,因為寄信方式百百種,還有處理quene的部分都有很多種的解法.所以idsmtpserver沒有做這部份,要自己來. 3. SMTP Server 扮演的腳色應該是處理大量信件的效率和每封信的Route.不僅僅是幫忙轉信而已. 以上, 所以在你的案件中, 你要先幫你的smtpserver定位. 如果你只是要大量的寄信的話, 直接在SMTP Client上做就好. 如果你是要過濾信件,或是希望能從別的網路來寄送同網域的SMTP的轉發式Server的話, 你就要研究ㄧ下如何做信件佇列, 還要另外寫個單元處理寄信的部份了. 如果信件量不大的話, 簡單的方法就是, 在OnReceiveMessage中直接使用idsmtp寄出去. 附帶一點:在官方的SMTP Server範例中只有提供收取信件, 和SMTP 指令處理的部份. |
yckuo
高階會員 發表:55 回覆:389 積分:238 註冊:2003-03-07 發送簡訊給我 |
|
artist1002
高階會員 發表:2 回覆:155 積分:151 註冊:2002-09-26 發送簡訊給我 |
引言: 請參考 http://www.atari-source.com/docs/indy/9.0/html/007707.html#000C 的 OnCommandRCPT ToForward 的部份. Sorry 我沒有裝此元件沒法幫你測試,僅提供你一個方向.解釋ㄧ下OnCommandRCPT事件. 在IdSMTPServer的OnCommand系列事件是反映SMTP通信協定的指令 OnCommandRCPT是在Client下了RCPT指令,可以在這個事件中檢查收件者的信箱,按照自己的規則來判斷要不要處理這封信件. 在OnCommandRCPT的ToForward是提供回應給Client端,表示這封信件的收件者不在這部電腦,而且會幫忙轉信. 其中的Accept是ㄧ定要回應的值,表示要不要接受這樣的收件者. 在CommandRCPT的階段,Server還沒有接收到完整的信件.也沒辦法在這裡直接處理轉信的動作... |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |