使用SMTP的AjaxjQuery json phpmailer

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (115)

这个代码运行良好,直到托管公司阻止了PHPmailer

他们告诉我可以使用SMTP instate

我编辑下面的代码但是没有工作

session_cache_limiter( '非缓存');

header('Expires:'。gmdate('r',0));

header('Content-type:application / json');

包括'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 =>数组(

            'text'=>'姓名',

            'val'=> $ _POST ['name']
        )
        1 =>数组(
            'text'=>'电子邮件地址',
            'val'=> $ _POST ['email']
        )
        2 =>数组(
            'text'=>'手机',
            'val'=> $ _POST ['手机']
        )
        3 =>数组(
            'text'=>'Campany',
            'val'=> $ _POST ['cname']
        )
        4 =>数组(

'text'=>'国家',
            'val'=> $ _POST ['ccountry']
        )
        5 =>数组(
            'text'=>'服务',

'val'=> $ _POST ['servicetype']
        )
        6 =>数组(

    'text'=>'留言',
            'val'=> $ _POST ['message']
        )
    );
    $ message =“”;

    foreach($ fields as $ field){


$ message。= $ field ['text']。“:”。htmlspecialchars($ field ['val'],ENT_QUOTES)。“ 
\ n”;
    }

    $ headers ='';

$ headers。='从:'。$ name。''。为 “\ r \ n” 个;

$ headers。=“回复:”。$ 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);

}



提问于
用户回答回答于

我想你应该改变这个

由于mail是发送邮件的php函数,而不是PHPMailer函数。

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

对此:

if(!$mail->send()) {
    $arrResult = array ('response'=>'success');
} else {
    $arrResult = array ('response'=>'error');
}

确保已设置所有标头和参数,否则将无法正常工作。

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

扫码关注云+社区

领取腾讯云代金券