总体目标:让我的联系方式将详细信息发送到我的个人电子邮件中
我想如何实现它不使用任何插件
问题:当我使用位于函数中的自定义PHPMailer函数时。php,控制台告诉我
发布http://websitename.test/wp-admin/admin-ajax.php 500(内部服务器错误)。。。。。。。。。。。。。。。。。。。。。。jquery。js?版本=1.12.4-wp:格式:4206
我正在使用Laragon作为本地服务器。每当我注释掉使用PHPMailer的自定义函数时,Laragon“;捕获量;电子邮件。但每当我重新添加自定义函数时,都会出现上面的错误。
以下是我的自定义PHPMailer函数:
add_action(\'phpmailer_init\', \'custom_mailer\');
/**
* Overrides the default PHPMailer to use STMP with AWS SES
*
*/
function custom_mailer(PHPMailer $phpmailer)
{
$phpmailer->isSMTP();
$phpmailer->SMTPAuth = true;
$phpmailer->Username = \'USERNAME\';
$phpmailer->Password = \'PASSWORD\';
$phpmailer->Host = \'email-smtp.ca-central-1.amazonaws.com\';
$phpmailer->SetFrom(\'[email protected]\', \'FName LName\');
$phpmailer->Port = 587;
$phpmailer->SMTPSecure = \'tls\';
}
用户名、密码和SetFrom当然会在此处更改,以确保它们的安全。我向您保证,用户名和密码与AWS SES控制台中提供的凭据完全相同。
我的联系人表单中的jQuery是:
(function($){
$(\'#enquiry\').submit( function(event) {
event.preventDefault();
var endpoint = \'<?php echo admin_url(\'admin-ajax.php\'); ?>\';
var form = $(\'#enquiry\').serialize();
var formData = new FormData;
formData.append(\'action\', \'enquiry\');
formData.append(\'nonce\', \'<?php echo wp_create_nonce(\'ajax-nonce\'); ?>\');
formData.append(\'enquiry\', form);
$.ajax(endpoint, {
type: \'POST\',
data: formData,
processData: false,
contentType: false,
success: function() {
$(\'#enquiry\').fadeOut(200);
$(\'#success_message\').text(\'Thank you for your enquiry!\').show();
$(\'#enquiry\').trigger(\'reset\');
},
error: function(error) {
alert(error.responseJSON);
$(\'#enquiry\').trigger(\'reset\');
}
});
});
})(jQuery)
处理POST/AJAX的PHP代码是:
/**
* AJAX for Contact Us Form
*
* */
add_action(\'wp_ajax_enquiry\', \'enquiry_form\');
add_action(\'wp_ajax_nopriv_enquiry\', \'enquiry_form\');
/**
* Enquiry Form Function
*/
function enquiry_form()
{
if (!wp_verify_nonce($_POST[\'nonce\'], \'ajax-nonce\')){
wp_send_json_error(\'Nonce is incorrect\', 401);
die();
}
$formdata = [];
wp_parse_str($_POST[\'enquiry\'], $formdata);
// Admin Email
$admin_email = get_option(\'admin_email\');
// Email Headers
$headers[] = \'Content-Type: text/html; charset=UTF-8\';
$headers[] = \'From: websitename.com <\' . $admin_email . \'>\';
$headers[] = \'Reply-to:\' . $formdata[\'email\'];
// Who are we sending the email to?
$send_to = $admin_email;
// Subject
$subject = "Enquiry from " . $formdata[\'fname\'] . " " . $formdata[\'lname\'];
// Message
$message = \'\';
foreach ($formdata as $index => $field) {
$message .= \'<strong>\' . $index . \'</strong>: \' . $field . \'<br/>\';
}
try {
if (wp_mail($send_to, $subject, $message, $headers)) {
wp_send_json_success(\'Email Sent!\');
} else {
wp_send_json_error(\'Email Error\');
}
} catch (Exception $error) {
wp_send_json_error($error->getMessage());
}
wp_send_json_success($data);
}
请告知。