Solved

Can't send mail with Form

Posted on 2007-03-17
6
319 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
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Hello, all! I just recently started using Microsoft's IIS 7.5 within Windows 7, as I just downloaded and installed the 90 day trial of Windows 7. (Got to love Microsoft for allowing 90 days) The main reason for downloading and testing Windows 7 is t…
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 demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

930 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

11 Experts available now in Live!

Get 1:1 Help Now