jquery可以检测到电子邮件是从客户端的邮件发送的吗?

7ajki6be  于 2023-11-17  发布在  jQuery
关注(0)|答案(1)|浏览(145)

目标是:我的网站的用户完成一组字段(不是表单),然后点击“发送电子邮件”(某些字段会经过完整性验证),然后通过“mailTo”激活用户的电子邮件平台,预先填充电子邮件,用户所要做的就是发送它。问题在于:是否有任何方法可以检测到用户实际上发送了电子邮件?现在,在电子邮件被发送之后,一个小div弹出询问用户是否发送了电子邮件,这对我来说很好,但是,我认为,不够坚实。我不想使用任何外部的,类型的“邮件发送者”应用程序,或者. aware,由于垃圾邮件问题,我想保持尽可能简单的沟通,而且,知道没有完整的方法来验证电子邮件,宁愿把它留给用户.这就是为什么我还需要一个电话号码来验证他们的预订(这是一个酒店的预订网站).这里是我的代码:

$("#btnDone").click(function(){
    
    //variables, for verification purposes (check input of "input type: hidden" fields - not in a form):
    var ctxx = "", ce = $("#yce").val().length, ct = $("#yct").val().length, cnl = $("#cnc").val().length;
    
    //verification functions return error = 1, if error:
    if(ce > 0){isEmail();} //contains basic regex
    else{isPhone();} //one or the other is required
    if(error==0){iscnp();} if(error==0){isyn();} if(error==0){if(ct > 0){iscnt();}}
        
        //if verifications OK:
    if(error==0){
            
            //variables to be included in e-mail:
            ynx = $("#yn").val(), cex = $("#yce").val(), ctx = $("#yct").val(), cnx = $("#cnt").val(),
            npx =   $("#cnp").val(), ncx = $("#cnc").val();
            
            //structuring, before populating e-mail variables:
            if(cnl > 0){npx = npx + ", " + ncx}
        ctxx = "Phone: " + ctx + " " + "(" + cnx + ")"; temp = "E-mail: " + cex;
                if(ce==0){temp = ctxx;}else{if(ct > 0){temp = temp + " - " + " " + ctxx;}}
                
                //e-mail variables:
        var esubject = encodeURIComponent("Subject: Reservation at (hotel name)");
            var ebody = encodeURIComponent("Number of persons: " + npx
                    + "\n\n" + iv + " - " + ov + "\n" + stay  + " " + noni + " total" + "\n" 
                + "Reservation Name: " + ynx + "\n" + temp + "\n\n" 
            + "Thank you, we will contact you shortly to confirm your booking..." + "\n" 
            + "Please add any notes and special requests below:" + "\n\n\n\n\n");
                //send e-mail:
        window.location.href = "mailto:[email protected]?subject=" + esubject + "&body=" + ebody;
        //asking the user if the e-mail was sent:
        $("#text1").text("Did you send your reservation e-mail?"); $("#text2").text("");
    }
});

字符串
问题出在最后一行。jquery不是询问用户是否发送了电子邮件,而是检测它是否发送了吗?换句话说,如果用户在他的邮件平台上点击了“send”?或者,如果电子邮件消息实际上到达了我的服务器?如果没有(可能是这样),如何用PHP完成上述工作?

hk8txs48

hk8txs481#

不,你不能检测这个客户端(直接),用jQuery或其他任何东西。
您可以通过在电子邮件中放置唯一标识符来检测此服务器端(例如,在主题中),并让客户端代码调用服务器端代码来检查邮件服务器是否收到了邮件。(您可能需要轮询[或使用Web Socket或服务器发送的事件等],这通常需要至少一两秒钟,有时更长。)* 如何 * 你做到这一点几乎完全取决于你的服务器环境的细节(这是一个太宽泛的问题)。
或者,你可以直接从你的脚本发送信息到你的服务器,而不是涉及用户的电子邮件系统,正如ADYSON指出的那样。这将是一个相当标准的方式来做。如果你需要验证他们的电子邮件地址,发送一封电子邮件,其中有一个代码,然后他们引用回来(通过点击链接或回复电子邮件)。

相关问题