2010-12-02 55 views
0

在客戶請求(可惜)他們希望他們的請求表單提示最終用戶的本地電子郵件客戶端。他們不想配置SMTP或其他任何內容。System.Diagnostics.Process.Start for mailto無法在測試服務器上工作

我遇到了一個問題,它在我的本地IIS上工作,但似乎無法在我們的或測試服務器上運行。日誌中沒有錯誤,並且撰寫電子郵件不會彈出以供發送。

任何想法?我查看了安全和配置,但除了操作系統本身之外沒有發現任何差異。 XP Pro -vs-服務器。

var mailToLink = "mailto:" + (string)HttpContext.GetGlobalResourceObject ("Portal", "mailToUnInst") + "?subject=" + (string)HttpContext.GetGlobalResourceObject("Portal", "admnTitlUnInst") + " request for " + (string)HttpContext.GetGlobalResourceObject("Portal", "admnTerm") + " " + term.Text + " on " + dtUnInst.Text + "&body="; 

mailToLink += (string)HttpContext.GetGlobalResourceObject("Portal", "admnTerm") + " " + term.Text + "%0D%0A" 
        + "%0D%0A" 
        + (string)HttpContext.GetGlobalResourceObject("Portal", "admnLoc") + " " + loc.Text + "%0D%0A" 
        + (string)HttpContext.GetGlobalResourceObject("Portal", "admnAddr1") + " " + addr1.Text + "%0D%0A" 
        + (string)HttpContext.GetGlobalResourceObject("Portal", "admnAddr2") + " " + addr2.Text + "%0D%0A" 
        + (string)HttpContext.GetGlobalResourceObject("Portal", "admnCity") + " " + city.Text + "%0D%0A" 
        + (string)HttpContext.GetGlobalResourceObject("Portal", "admnSt") + " " + st.Text + "%0D%0A" 
        + (string)HttpContext.GetGlobalResourceObject("Portal", "admnZip") + " " + zip.Text + "%0D%0A" 
        + "%0D%0A" 
        + (string)HttpContext.GetGlobalResourceObject("Portal", "admnAtmType") + " " + atm.Text + "%0D%0A" 
        + (string)HttpContext.GetGlobalResourceObject("Portal", "admnDtUnInst") + " " + dtUnInst.Text + "%0D%0A" 
        + (string)HttpContext.GetGlobalResourceObject("Portal", "admnRsn") + " " + resn.Text + "%0D%0A" 
        ; 

try 
{ 
    System.Diagnostics.Process.Start(mailToLink); 
} 
catch 
{ 
    //error log process 
} 

所有幫助非常感謝

+0

需要更多代碼。也許啓動參數`mailToLink`在IIS機器上有效,而不是在本地服務器上?你會得到什麼異常/失敗代碼? – 2010-12-02 16:05:41

+0

您希望在您的服務器上進行「Process.Start」調用時發生什麼? – 2010-12-02 16:16:28

回答

2

首先要嘗試:在命令行上會發生什麼?

start mailto:[email protected] 

這是否啓動郵件客戶端?如果沒有,那麼這與.NET沒有任何關係。 (它不能在我的上網本上運行,但是我從來沒有在那裏設置郵件客戶端...)

2

也許我得到這個錯誤,但是你想調用Process.Start服務器啓動用戶的本地電子郵件客戶端?這是行不通的(當然,只有當你的web服務器在適當的上下文中運行在本地機器上時,它才能工作)。你應該用的mailto鏈接在你的網頁:

<a href="mailto:[email protected]?subject=MySubject&body=Hello%20World">Click to send an email</a> 

更新

他們不希望在那裏結束配置SMTP或任何東西。

如果沒有SMTP服務器,根本無法發送電子郵件,無論您是要使用電子郵件客戶端工具還是.NET類。您應該告訴您的客戶端需要配置,可能會將STMP服務器值存儲在web.config中,並按照here所述發送電子郵件。

相關問題