首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用PHPMailer的AJAX jQuery JSON PHPMailer

使用PHPMailer的AJAX jQuery JSON PHPMailer
EN

Stack Overflow用户
提问于 2018-08-25 08:31:30
回答 1查看 605关注 0票数 2

在托管公司屏蔽PHPMailer之前,下面的代码运行良好。

他们告诉我可以使用SMTP instate

我编辑了下面的代码,但它仍然不能工作

代码语言:javascript
复制
session_cache_limiter('nocache');

header('Expires: ' . gmdate('r', 0));
header('Content-type: application/json');

include 'php-mailer/class.phpmailer.php';

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Host = 'smtp.website.com';
$mail->Port = 25;
$mail->SMTPSecure = '';
$mail->Username = 'info@website.com';
$mail->Password = 'websitepass';

$to = 'info@website.com';
$subject = $_POST['subject'];

if($to) {

    $name = $_POST['name'];
    $email = $_POST['email'];
    $fields = array(
        0 => array(
            'text' => 'Name',
            'val' => $_POST['name']
        ),
        1 => array(
            'text' => 'Email address',
            'val' => $_POST['email']
        ),
        2 => array(
            'text' => 'Phone',
            'val' => $_POST['phone']
        ),
        3 => array(
            'text' => 'Campany',
            'val' => $_POST['cname']
        ),
        4 => array(
            'text' => 'Country',
            'val' => $_POST['ccountry']
        ),
        5 => array(
            'text' => 'Service',
            'val' => $_POST['servicetype']
        ),
        6 => array(
            'text' => 'Message',
            'val' => $_POST['message']
        )
    );
    $message = "";

    foreach($fields as $field) {
        $message .= $field['text'].": " . htmlspecialchars($field['val'], ENT_QUOTES) . "<br>\n";
    }

    $headers = '';

    $headers .= 'From: ' . $name . ' <' . $email . '>' . "\r\n";
    $headers .= "Reply-To: " .  $email . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=UTF-8\r\n";

    if (mail($to, $subject, $message, $headers)){
        $arrResult = array ('response'=>'success');
    } else{
        $arrResult = array ('response'=>'error');
    }

    echo json_encode($arrResult);

} else {
    $arrResult = array ('response'=>'error');
    echo json_encode($arrResult);
}
EN

回答 1

Stack Overflow用户

发布于 2018-08-25 08:40:43

我认为你应该改变这个

因为邮件是用来发送邮件的php函数,而不是PHPMailer函数。

代码语言:javascript
复制
if (mail($to, $subject, $message, $headers)){
    $arrResult = array ('response'=>'success');
} else{
    $arrResult = array ('response'=>'error');
}

要这样做:

代码语言:javascript
复制
if(!$mail->send()) {
    $arrResult = array ('response'=>'success');
} else {
    $arrResult = array ('response'=>'error');
}

请确保所有头部和参数都已设置好,否则将不起作用。

我在维基的教程中找到了这个send()函数:https://github.com/PHPMailer/PHPMailer/wiki/Tutorial

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52013128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档