Solved

Can't send mail with Form

Posted on 2007-03-17
6
323 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
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 

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

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
classic asp checkbox uncheck and check 2 62
API works for 1 result, need to make it many 30 83
Pass through dll 2 83
How to show result of a NULL value at random? 32 51
I would like to start this tip/trick by saying Thank You, to all who said that this could not be done, as it forced me to make sure that it could be accomplished. :) To start, I want to make sure everyone understands the importance of utilizing p…
This demonstration started out as a follow up to some recently posted questions on the subject of logging in: http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_28634665.html and http://www.experts-exchange.com/Programming/…
Along with being a a promotional video for my three-day Annielytics Dashboard Seminor, this Micro Tutorial is an intro to Google Analytics API data.
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 …

777 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