ASP使用CDOSYS和AJAX发送电子邮件

时间:2014-09-07 19:24:01

标签: javascript ajax email asp-classic

我尝试使用IIS 7 Server中的CDOSYS和AJAX发送电子邮件。 我发送了一封AJAX请求来发送邮件。并且AJAX返回200 OK状态。 但电子邮件尚未到货。 谁能解决我的问题?非常感谢!

我有3个文件:

1。的index.html enter image description here

2。 main.js

    function sendEmailAjaxFunc(){

        var cusName = document.getElementById("cusName").value;
        var emailAdr = document.getElementById("emailAdr").value;

        var xmlhttp;
        try{
            xmlhttp=new XMLHttpRequest();
        }
        catch(e){
            xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
        }
        xmlhttp.open("GET","sendEmail.asp?cusName="+cusName+"&emailAdr="+emailAdr+"&sTime="+new Date().getTime(),true);
        xmlhttp.onreadystatechange=function() {
            if (xmlhttp.readyState==4 && xmlhttp.status==200) {
                //finish report
                //alert(xmlhttp.responseText);
            }
        }
        xmlhttp.send(null);
        return true;
    }

第3。 sendEmail.asp

    <%@ Language=JScript CodePage=65001 %>
    <%

        var cusName = Request.QueryString("cusName");
        var emailAdr = Request.QueryString("emailAdr");

        var objMail = Server.CreateObject( "CDO.Message" );
        objMail.BodyPart.charset = "unicode-1-1-utf-8";
        objMail.From = 'info@it.com';
        objMail.To = emailAdr;
        objMail.Cc = emailAdr;
        objMail.Subject = 'It-Zhai GmbH';
        objMail.TextBody = 'Hello ' + cusName + ', just a text email';
        //objMail.HTMLBody = 'HTML';
        //objMail.AddAttachment('justAttachment.txt');
        objMail.SendMail;
    %>

2 个答案:

答案 0 :(得分:1)

您是否设置了发送邮件的电子邮件服务器?看起来您需要配置要通过服务器发送的消息。

以下是一些可添加到配置中的选项......

objMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 

'Name or IP of Remote SMTP Server'

objMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.myserver.com"

'Server port (typically 25)'

objMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 

objMail.Configuration.Fields.Update

您可以在此处找到更多信息... http://www.paulsadowski.com/wsh/cdo.htm

答案 1 :(得分:0)

谢谢伙计们!

我找到了解决方案。 最终从我的服务器发送了一封电子邮件。 在sendEmail.asp文件中,我应该进行以下配置:

    var oServer=new ActiveXObject("CDO.Configuration");
    oServer.Fields(cdoSMTPServer)="...";  //Server Adresse
    oServer.Fields(cdoSMTPAuthenticate) = 1;
    oServer.Fields(cdoSMTPUseSSL) = 1;
    oServer.Fields(cdoSendUsername)="...";
    oServer.Fields(cdoSendPassword)="...";