【问题标题】:ASP Sending E-mail with CDOSYS and AJAXASP 使用 CDOSYS 和 AJAX 发送电子邮件
【发布时间】:2014-09-09 17:10:31
【问题描述】:

我尝试在 IIS 7 服务器中使用 CDOSYS 和 AJAX 发送电子邮件。 我已经发送了一个 AJAX 请求来发送邮件。 AJAX 返回 200 OK 状态。 但是邮件没有收到。 谁能解决我的问题?非常感谢!

我有 3 个文件:

1. index.html

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;
    %>

【问题讨论】:

  • 您是否尝试过使用查询字符串中的参数直接在浏览器中请求 sendmail.asp?您可能会收到一条对您有帮助的错误消息。

标签: javascript ajax email asp-classic


【解决方案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

【讨论】:

  • 谢谢! :) 这个配置是必须的!
  • 完成!谢谢!哈哈^^
【解决方案2】:

谢谢朋友!

我找到了解决办法。 终于从我的服务器发送了一封电子邮件。 在文件 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)="...";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-03
    • 2011-02-14
    • 2012-12-17
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 1970-01-01
    • 2017-12-25
    相关资源
    最近更新 更多