Solved

Can't send mail with Form

Posted on 2007-03-17
6
327 Views
Last Modified: 2012-06-27
I have recently switched webhosting companies and now have to edit my ASP script pages.

Everything is working except my Send mail. I think I may have to pass authentication (my old server didn't require authentication) but I'm not sure if I have it written correctly.

I'm getting this error on the site..
error '8004020f'
/inquiries.asp, line 139

I added the authentication part to the script and now get this error.
Microsoft VBScript runtime error '800a01a8'
Object required: ''
/inquiries.asp, line 118

I will mark 118 and 139 below.

Here is a piece of the code.

<%
      
      Dim oMessage, objConfig, Flds, eBody
      Dim str, temp
        Set str = New RegExp
        str.Global = True
        str.IgnoreCase = True
      
      str.Pattern = "^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,3}$"
    temp = str.Test(Trim(request.form("eMail")))
      
      
      If temp = true Then
            Set oMessage = Server.CreateObject("CDO.Message")
            
            Set objConfig = createobject("CDO.Configuration")
            Set Flds = objConfig.Fields
            
            eBody = "http://schemas.microsoft.com/cdo/configuration/"
            With Flds
                  .Item(eBody & "sendusing") = 2
                  .Item(eBody & "smtpserver") = "smtp.<CompanyName>.com"

----THIS IS LINE 118----  'Type of authentication, NONE, Basic (Base64 encoded), NTLM
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic

'Your UserID on the SMTP server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = "< my user account username goes here>"

'Your password on the SMTP server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "<my password goes here>"

'Server port (typically 25)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

'Use SSL for the connection (False or True)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True

'Connection Timeout in seconds (the maximum time CDO will try to establish a connection to the SMTP server)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
                  
.Update
            End With
            Set oMessage.Configuration = objConfig
      
            eBody = ""
            eBody = eBody & "Subject: " & request.form("Subject") & chr(10)
            eBody = eBody & "Company: " & request.form("Company") & chr(10)
            eBody = eBody & "First Name: " & request.form("First Name") & chr(10)
            eBody = eBody & "Last Name: " & request.form("Last Name") & chr(10)
            eBody = eBody & "Job: " & request.form("Job") & chr(10)
            eBody = eBody & "Email: " & request.form("eMail") & chr(10)
            eBody = eBody & "Phone: " & request.form("Phone") & chr(10)            
            eBody = eBody & "Fax: " & request.form("Fax") & chr(10)
            eBody = eBody & "Address: " & request.form("Address") & chr(10)
            eBody = eBody & "City: " & request.form("City") & chr(10)
            eBody = eBody & "Zip: " & request.form("Zip") & chr(10)
            eBody = eBody & "Inquiry: " & request.form("Inquiry") & chr(10)
            
            With oMessage
                  .To = "customerservice@<CompanyName>.com"
                  .From = request.form("eMail")
                  .Subject = "<CompanyName> Inquiry Form"      
                  .Textbody = eBody
---- THIS IS LINE 139 -----            .Send
            End With
            Set oMessage = Nothing  
            
            Response.Write("Thank You, your information has been received.")
      Else
%>
0
Comment
Question by:marcum
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
6 Comments
 
LVL 14

Expert Comment

by:B_Dorsey
ID: 18740715
this
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic

should be

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
0
 

Author Comment

by:marcum
ID: 18740781
I made the change same error.

Microsoft VBScript runtime error '800a01a8'
Object required: ''
/inquiries.asp, line 118

Could it be that I'm using
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1

instead of using
.Item(eBody & "smtpauthenticate") = 1

??
Thanks
0
 
LVL 14

Expert Comment

by:B_Dorsey
ID: 18740794
here is what I use and it works, maybe you can see your error...

Set objCDOSYS = Server.CreateObject("CDO.Message")
Set objCDOConf = Server.CreateObject ("CDO.Configuration")

uncomment the next section if remote SMTP
'With objCDOConf
'      .Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'      .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.mydomain.com" 'smtp IP or domain
'      .Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "smtp_username" 'smtp username
'      .Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "smtp_password" 'smtp password
'      .Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 'Set to 1 if you need to authenticate on the SMTP server
'      .Fields.Update
'End With
'Set objCDOSYS.Configuration = objCDOConf
With objCDOSYS    
      .From = "administrator@site.com"
      .To = strEmail & "@site.com"
      .Subject = "Subject"
                strMessage = "<p>HTML Message</p>"
      .HTMLBody = strMessage
      .Send
End with
Set objCDOSYS = Nothing
Set objCDOConf = Nothing

0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:marcum
ID: 18741465
OK So I made few modifications.

The error is now.
CDO.Message.1 error '80040213'
The transport failed to connect to the server.
/inquiries.asp, line 145

here is the code...

<%
      
      Dim oMessage, objConfig, Flds, eBody
      Dim str, temp
        Set str = New RegExp
        str.Global = True
        str.IgnoreCase = True
      
      str.Pattern = "^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,3}$"
    temp = str.Test(Trim(request.form("eMail")))
      
      
      If temp = true Then
            Set oMessage = Server.CreateObject("CDO.Message")
            
            Set objConfig = createobject("CDO.Configuration")
            Set Flds = objConfig.Fields
            
            eBody = "http://schemas.microsoft.com/cdo/configuration/"
            With Flds
                  .Item(eBody & "sendusing") = 2
                  .Item(eBody & "smtpserver") = "smtp.soncebozusa.com"
                  .Item(eBody & "smtpauthenticate") = 1
                  .Item(eBody & "sendusername") = "customerservice@soncebozusa.com"
                  .Item(eBody & "sendpassword") = "password"
                  .Item(eBody & "smtpserverport") = 25
                  .Item(eBody & "smtpusessl") = True
                  .Item(eBody & "smtpconnectiontimeout") = 10
                  .Update
            End With
            Set oMessage.Configuration = objConfig
      
            eBody = ""
            eBody = eBody & "Subject: " & request.form("Subject") & chr(10)
            eBody = eBody & "Company: " & request.form("Company") & chr(10)
            eBody = eBody & "First Name: " & request.form("First Name") & chr(10)
            eBody = eBody & "Last Name: " & request.form("Last Name") & chr(10)
            eBody = eBody & "Job: " & request.form("Job") & chr(10)
            eBody = eBody & "Email: " & request.form("eMail") & chr(10)
            eBody = eBody & "Phone: " & request.form("Phone") & chr(10)            
            eBody = eBody & "Fax: " & request.form("Fax") & chr(10)
            eBody = eBody & "Address: " & request.form("Address") & chr(10)
            eBody = eBody & "City: " & request.form("City") & chr(10)
            eBody = eBody & "Zip: " & request.form("Zip") & chr(10)
            eBody = eBody & "Inquiry: " & request.form("Inquiry") & chr(10)
            
            With oMessage
                  .To = "customerservice@soncebozusa.com"
                  .From = request.form("eMail")
                  .Subject = "SoncebozUSA Inquiry Form"      
                  .Textbody = eBody
-----THIS IS LINE 145 -----            .Send
            End With
            Set oMessage = Nothing  
            
            Response.Write("Thank You, your information has been received.")
      Else
%>

0
 
LVL 14

Accepted Solution

by:
B_Dorsey earned 500 total points
ID: 18741532
do you need to spedify the port since its a default port?

if you use ssl wont it try using the ssl port ?

also I would try removing the timeout...
0
 

Author Comment

by:marcum
ID: 18742056
Thanks for your help, after working out the little bugs it turns out the Hosting company was blocking the smtp and provided me with a secureSmtp server instead. It would have been nice to have the hosting company tell me earlier but better late then never I suppose.
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Error viewing ASP page 12 177
href return to normal window 5 29
Can't select treeview node from iframe 2 36
Help with Classic ASP - Parameterizing Query 16 19
I recently decide that I needed a way to make my pages scream on the net.   While searching around how I can accomplish this I stumbled across a great article that stated "minimize the server requests." I got to thinking, hey, I use more than one…
I was asked about the differences between classic ASP and ASP.NET, so let me put them down here, for reference: Let's make the introductions... Classic ASP was launched by Microsoft in 1998 and dynamically generate web pages upon user interact…
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…

756 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question