我正在尝试在提交wordpress页面中的表单之前发送电子邮件。我能够成功完成AJAX部分并发送电子邮件。但是,电子邮件不是100%交付的。我想知道为什么?
这是代码
var data = {}; data.donorEmail = $("#email").val(); data.action = "mail_action"; $("#donorSubmit").click(function(e){ $.post('http://www.myurl.com/wp-admin/admin-ajax.php',data, onSuccess); }); function onSuccess(results) { if( results == "00") document.forms['donorForm'].submit() // After the email is sent then submit the form to another website. }
这是functions.php
中的代码add_action('wp_ajax_mail_action', 'sending_mail'); add_action('wp_ajax_nopriv_mail_action', 'sending_mail'); function sending_mail(){ if(isset($_POST['email'])) { $to = "myemail@mydomain.com"; $subject = "Donation"; $message = $_POST['email']; if(mail($to, $subject, $message)) { echo "0"; } } }
使用此代码我会一直收到电子邮件。但是,应该是用户电子邮件的电子邮件内容并不随时随附电子邮件。有时它只是一个空白的内容。
答案 0 :(得分:2)
如你所见:
vardata = {'donorEmail':$('#email').val(),'action':'mail_action' };
但是在您的php文件中,您请求$_POST['email']
而不是$_POST['donorEmail'];
尝试拨打$_POST['donorEmail'];