Solved

Can't send mail with Form

Posted on 2007-03-17
6
326 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
  • 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
Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

 

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: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

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
Update field in order 21 148
Summernote required 3 183
Classic ASP - problem with MS SQL Select Query? 10 60
Set time on Session (ASP) 14 22
I have helped a lot of people on EE with their coding sources and have enjoyed near about every minute of it. Sometimes it can get a little tedious but it is always a challenge and the one thing that I always say is:  The Exchange of information …
Have you ever needed to get an ASP script to wait for a while? I have, just to let something else happen. Or in my case, to allow other stuff to happen while I was murdering my MySQL database with an update. The Original Issue This was written…
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

860 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