2010-02-17 72 views
7

經典ASP發送電子郵件,我們從設計機構誰只是想我們做搜索和替換更改SMTP主機繼承了傳統的ASP網站。沒問題,我們是一家PHP商店,但可以把我們的手轉向大多數事情。與SMTP驗證

在進一步的調查才發現,我們需要用新的SMTP服務器進行身份驗證。

谷歌搜索使我們相信它使用ASPMail 4,並根據文檔它不做認證的位。

http://www.serverobjects.com/comp/Aspmail4.htm

我們只是用Google搜索 「SMTPsvg.Mailer」 從這個函數:

Set Mailer = Server.CreateObject("SMTPsvg.Mailer") 

我是正確的我的假設,上面的是ASPMail 4,APSMAil沒有做認證?

我可以用我是否需要更換Aspmail與SMTP服務器進行身份驗證?

+2

只是要注意的,我一無所知ASP ...除了它運行在Windows服務器和啓動戰爭的火焰。 – johnwards

回答

18

如上所述,使用CDO。

set config = CreateObject("CDO.Configuration") 
sch = "http://schemas.microsoft.com/cdo/configuration/" 
with config.Fields 
.item(sch & "sendusing") = 2 ' cdoSendUsingPort 
.item(sch & "smtpserver") = application("smtpserver") 
.item(sch & "smtpserverport") = application("smtpserverport") 
.item(sch & "smtpauthenticate") = 1 'basic auth 
.item(sch & "sendusername") = application("sendusername") 
.item(sch & "sendpassword") = application("sendpassword") 
.update 
end with 

with CreateObject("CDO.Message") 
    .configuration = config 
    .to = ... 
    .from = ... 
    .subject = .... 
    .HTMLBody = .... 
    call .send() 
end with 

有關配置對象的每個字段的文檔可以找到here

+0

對於像我這樣的新手應用程序(「sendusername」)應該在其他地方定義。如果您之前沒有定義它,請直接使用它,如「[email protected]」 – Kemal

1

檢查託管服務提供商支持.Net框架2.0(大多數人),如果是重命名.asp文件爲.aspx,刪除發送電子郵件的代碼,寫一些簡單的代碼:

http://www.systemwebmail.com/faq/3.8.aspx

問候

托馬斯

+1

不幸的是,將現有ASP頁面移植到ASP.NET頁面幾乎不會像將.asp文件擴展名重命名爲.aspx一樣簡單,因爲除其他因素外,Microsoft Visual Basic Sc​​ripting Edition(VBScript)和Visual基本的.NET。來自:http://msdn.microsoft.com/en-us/library/ms973813.aspx – Shoban

+0

不一定他需要重寫整個頁面,只製作'mailsender.aspx'接受需要作爲POST數據的數據,發送郵件並返回結果值。在我看來,比使用CDO更好。 –

-3

按照文檔here ASPMail 4.x的只是不支持認證。它看起來像你必須切換到不同的基於COM的SMTP組件。

+3

他已經給出了他的問題中的鏈接:) – Shoban

+0

爲什麼重新發布相同的鏈接賺取downvote時,我的答案是否相同的頂級投票的問題?就是想。 –

+0

我沒有足夠的代表投票。然而,這可能是由於您鏈接到我在我的問題中鏈接到的相同文檔,與我所做的相同,因爲文檔說它不支持身份驗證。 – johnwards