Solved

Can't send mail with Form

Posted on 2007-03-17
6
316 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
How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

 

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

Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

Join & Write a Comment

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 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 …
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, Just open a new email message.  In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…

705 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

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now