Web Hosting Forum | Lunarpages

Author Topic: Mail Form on Windows Servers  (Read 10024 times)

Offline manuel

  • Space Explorer
  • ***
  • Posts: 9
Mail Form on Windows Servers
« on: January 04, 2007, 03:07:15 PM »
On our Windows Servers you can create mail forms using the CDOSYS component.
CDOSYS is the Microsoft new interface for SMTP email introduced in Windows 2000 that replaced the CDONTS component.
The CDONTS component is completely removed from Windows 2003 Servers,so on our shared server you can only use CDOSYS.

This is a code sample:

<%
' send by connecting to port 25 of the SMTP server
Dim iMsg
Dim iConf
Dim Flds
Dim strHTML
Dim strSmartHost

Const cdoSendUsingPort = 2
StrSmartHost = "localhost"

set iMsg = CreateObject("CDO.Message")
set iConf = CreateObject("CDO.Configuration")

Set Flds = iConf.Fields

' set the CDOSYS configuration fields to use port 25 on the SMTP server

With Flds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") =
cdoSendUsingPort
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") =
strSmartHost
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout")
= 10
.Update
End With

' build HTML for message body
strHTML = ""
strHTML = strHTML & ""
strHTML = strHTML & ""
strHTML = strHTML & "Message here"
strHTML = strHTML & ""
strHTML = strHTML & ""

' apply the settings to the message
With iMsg
Set .Configuration = iConf
.To = "email address here"
.From = "email address here"
.Subject = "Email Message Here"
.HTMLBody = strHTML
.Send
End With

' cleanup of variables
Set iMsg = Nothing
Set iConf = Nothing
Set Flds = Nothing
%>

The above code is in ASP and uses CDOSYS and will allow you to specify the To, From, Subject and both the Title and HTML bodies. Just cut and past into a blank page and save with an extension of .asp and this should work.
« Last Edit: January 04, 2007, 03:09:16 PM by manuel »

Offline petermo

  • Newbie
  • *
  • Posts: 3
Re: Mail Form on Windows Servers
« Reply #1 on: January 16, 2007, 08:06:40 PM »
Is the code here still valid?  I tried it without success.  All I am looking for is to be able to receive feedback from my website via an online form.  Any suggestions?
- petermo

Offline perestrelka

  • Master Jedi
  • *****
  • Posts: 1397
Re: Mail Form on Windows Servers
« Reply #2 on: January 16, 2007, 09:33:46 PM »
Did you get any errors, Petermo?
Kind Regards,
Vlad Artamonov

Offline petermo

  • Newbie
  • *
  • Posts: 3
Re: Mail Form on Windows Servers
« Reply #3 on: January 17, 2007, 09:03:07 AM »
The site is still in preview mode (I haven't migrated the DNS info yet), and the page can be viewed at
http://mettalah.lunarpages.com/$sitepreview/mediationnow.com/test/asp/testmail2.asp

The error I get is:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator to inform of the time the error occurred and of anything you might have done that may have caused the error.

More information about this error may be available in the server error log.


Do you think the issue will be cleared up once I go live with the domain name?

Thanks!
petermo

Offline petermo

  • Newbie
  • *
  • Posts: 3
Re: Mail Form on Windows Servers
« Reply #4 on: January 17, 2007, 10:50:00 AM »
I got it working!  When I originally copied the script, several lines split into two - which caused the error.

Thanks.
- petermo

Offline jadeflo

  • Trekkie
  • **
  • Posts: 13
Re: Mail Form on Windows Servers
« Reply #5 on: July 17, 2009, 09:10:42 AM »
Hi, I tried copying the script, but it still doesn't work, when I clic on the submit button I get this message: Method Not Allowed
The HTTP verb used to access this page is not allowed.

any Idea of how I can fix this?

thanks!

MWaqas

  • Guest
Re: Mail Form on Windows Servers
« Reply #6 on: February 10, 2011, 05:30:16 AM »
Hello,

Please try using the port 587 (instead of 25) furthermore to send emails out via code; one will have to use SMTP-Authentication which means to use an actual email address and its password in the code to send emails out, hence any emails being sent out from the webapplications in PHP/Perl/ASP/ASP.net need the SMTP verification to be done prior to the mail() command in PHP with any email account, created from Plesk's "Remote Email" section.

The smtp verification can be done either with smtp server address "mail.your-domain.com" if you are using asp.net please use CDOSYS (with SMTP authentication) and if you are using PHP please use php-pear module. Samples of both codes are provided below:

---Pear module with Smtp-auth----
require_once "Mail.php";
$from = "<you@your.com>";
$to = "Waqas <m.waqas@lunarpages.com>";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
$host = "mail.your.com";
$username = "you@your.com";
$password = "pass_of_you@your.com";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}

Here is a working example of -----------====CDOSYS====---------- without the opening ASP tags:

 Const cdoSendUsingPickup = 1 'Send message using the local SMTP service pickup directory.
 Const cdoSendUsingPort = 2 'Send the message using the network (SMTP over the network).
 Const cdoAnonymous = 0 'Do not authenticate
 Const cdoBasic = 1 'basic (clear-text) authentication
 Const cdoNTLM = 2 'NTLM
 Set objMessage = Server.CreateObject("CDO.Message")
 objMessage.Subject = "Example CDO Message"
 objMessage.Sender = "me@mydomain.com"
 objMessage.From = "me@mydomain.com"
 objMessage.To = "recipient@test.com"
 objMessage.TextBody = "This is some sample message text.." & vbCRLF & "It was sent using SMTP authentication."
 '==This section provides the configuration information for the remote SMTP server.
 objMessage.Configuration.Fields.Item _
 ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
 'Name or IP of Remote SMTP Server
 objMessage.Configuration.Fields.Item _
 ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail.your.com"
 '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") = "you@your.com"
 'Your password on the SMTP server
 objMessage.Configuration.Fields.Item _
 ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password_of_you@your.com"
 'Server port (typically 25)
 objMessage.Configuration.Fields.Item _
 ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587
 'Use SSL for the connection (False or True)
 objMessage.Configuration.Fields.Item _
 ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
 '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") = 60
 objMessage.Configuration.Fields.Update
 objMessage.Send

 

Share |