線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1514
推到 Plurk!
推到 Facebook!

請問 如何使用smtpserver來轉發郵件?

答題得分者是:artist1002
gleo
一般會員


發表:3
回覆:9
積分:7
註冊:2004-01-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-29 10:02:30 IP:61.62.xxx.xxx 未訂閱
大家新年好,小弟在寫一個由自己的smtpserver寄到網路上的mail server的程式,但是苦無這方面資訊,我使用的是indy 裡的smtpserver範例,請問哪位前輩可以給我提示,謝謝.
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-29 10:23:44 IP:61.221.xxx.xxx 未訂閱
您好: 參考http://delphi.ktop.com.tw/topic.php?TOPIC_ID=21184 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=43235 ~~應無所住而生其心~~
gleo
一般會員


發表:3
回覆:9
積分:7
註冊:2004-01-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-01-29 13:22:13 IP:211.22.xxx.xxx 未訂閱
謝謝您的回答,但是您可能誤會我的意思了,我想做的是把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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-01-29 18:11:37 IP:211.76.xxx.xxx 未訂閱
其實都是使用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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-01-30 10:52:14 IP:211.22.xxx.xxx 未訂閱
artist1002您好,謝謝您的回答,但因為我只用過indy裡的idsmtp及idsmtpserver,雖然我會使用idsmtp寄信出去,但是關於idsmtpserver的範例是少之又少,官方的範例更是模糊不清,至於您所說的"使用相同方式來處理Server"指的是我再建立一個idsmtp來寄嗎?還是idsmtpserver裡有更好的方式呢? 因為如果再建立一個idsmtp來寄的話,我這個舉動豈不多此一舉嗎,是不是我的想法錯誤了呢,謝謝.
artist1002
高階會員


發表:2
回覆:155
積分:151
註冊:2002-09-26

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-27 16:27:29 IP:211.76.xxx.xxx 未訂閱
引言: 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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-02-27 23:30:55 IP:61.221.xxx.xxx 未訂閱
請參考 http://www.atari-source.com/docs/indy/9.0/html/007707.html#000C 的 OnCommandRCPT ToForward 的部份. Sorry 我沒有裝此元件沒法幫你測試,僅提供你一個方向.
------
yckuo
artist1002
高階會員


發表:2
回覆:155
積分:151
註冊:2002-09-26

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-03-02 12:59:09 IP:211.76.xxx.xxx 未訂閱
引言: 請參考 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還沒有接收到完整的信件.也沒辦法在這裡直接處理轉信的動作...
系統時間:2024-05-13 20:12:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!