2012-11-23 70 views
0

我有一個使用CDO通過電子郵件發送表單詳細信息的asp頁面。到目前爲止,我已經通過與hmail服務器的明確連接使用smtp端口25來完成此操作。使用SSL連接發送CDO電子郵件

我現在需要使用SSL連接。我創建了一個安全證書並將hmail服務器設置爲使用端口465和ssl。

然而,由於某些原因,當我嘗試發送我得到一個錯誤500的形式,而不是發送電子郵件。

我曾與587端口嘗試,以及,但它也不起作用。

我使用的CDO代碼如下:

If request.Form("submit") <> "" then 

Set myMail=CreateObject("CDO.Message") 
myMail.Subject="xxxxxxx" 
myMail.From=Request.Form("email") 
myMail.To= "xxxxxxxxxxx" 

myMail.TextBody = "Name:"& Request.Form("name")& vbcrlf & vbcrlf & _ 

"Email:" & Request.Form("email") & vbcrlf & vbcrlf & _ 

"Telephone:" & Request.Form("telephone") & vbcrlf & vbcrlf & _ 

"Location:" & Request.Form("location") & vbcrlf & vbcrlf & _ 

"Other location:" & Request.Form("other_location") & vbcrlf & vbcrlf & _ 

"Comments:" & Request.Form("comments") 

myMail.Configuration.Fields.Item _ 
("http://schemas.microsoft.com/cdo/configuration/sendusing")=2 
'Name or IP of remote SMTP server 
myMail.Configuration.Fields.Item _ 
("http://schemas.microsoft.com/cdo/configuration/smtpserver") _ 
="127.0.0.1" 
'Server port 
myMail.Configuration.Fields.Item _ 
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") _ 
=465 
MyMail.Configuration.Fields.Item _ 
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True 
myMail.Configuration.Fields.Update 
myMail.Send 
set myMail=nothing 

有沒有人有一個想法是什麼可能是錯的?

謝謝。

回答

0

這篇文章有點老了,你已經解決了嗎?

如果沒有,你能提供的錯誤信息(比一般的500除外)?

我只有2分可能的想法,沒有看到實際的錯誤信息:

1)它可以超時。嘗試添加myMail.Configuration.Fields.Item _ ( 「http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout」)= 60

2)也許存在與「127.0.0.1證書不匹配的「IP地址和SSL通信正在被拒絕。

2

我有與傳統ASP代碼一樣的問題。以下代碼適用於亞馬遜。 注意:只有端口25或465似乎工作和smtpusessl = 1(在VBScript真== - 1)

' Create Connection 
Function GetEmailConnection() 
    Set oMail = CreateObject("CDO.Message") 
    Set GetEmailConnection = oMail 
End function 
Function GetConfiguration() 
    Set oConfig = CreateObject("CDO.Configuration") 
    Set GetConfiguration = oConfig 
End Function 

' Send Email 

    Sub SendEmail (subject, fromAddress, toAddress, body) 
     set objMessage = GetEmailConnection() 


    Set objConfiguration = GetConfiguration() 

    Set fields = objConfiguration.Fields 

    Const cdoSendUsingPort = 2 

    With fields 
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort 
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "email-smtp.us-east-1.amazonaws.com" 
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = 1 
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 ' 
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 'basic 
    .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" 
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "user" 
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10 
    .Update 
    End With 
    With objMessage 
    set .Configuration = objConfiguration 
    .Subject = subject 
    .From = fromAddress 
    .To= toAddress 
    .TextBody = body 
    .Send 
    End With 
    set objMessage = nothing   
end Sub 
相關問題