PHPmailer仅在浏览器指向URL时发送

时间:2014-11-07 17:57:25

标签: php phpmailer

我尝试发送电子邮件(使用PHPMailer)并将数据插入到同一PHP脚本中的MySQL表中。从Ajax请求调用脚本,插入函数工作正常,但脚本不会发送电子邮件。但是,如果我通过将浏览器指向PHP文件的URL来执行脚本,则会发送电子邮件。

之前我曾使用过PHPMailer,并使用我以前的代码作为当前项目的模板。这里我省略了将数据插入表中的代码,因为我知道它运行成功。下面是PHPMailer的代码:

require_once 'lib/phpmailer/PHPMailerAutoload.php';

$m = new PHPMailer(true);

$m->isSMTP();
$m->SMTPAuth = true;
$m->SMTPDebug = 3;
$m->Host = 'smtp.myDomain.com';
$m->Username = 'email@myDomain.com'; //username of email account used to send
$m->Password = 'myPW'; //PW of email account used to send
$m->SMTPSecure = 'tls';
$m->Port = '587';

$m->From = 'email@myDomain.com';
$m->FromName = 'From Name';
$m->addReplyTo('email@myDomain.com','Reply address');

$m->addAddress('address@domain.com');

$m->isHTML(true); //Set body to HTML



$m->Subject = 'My Subject';

//HTML Body
$m->Body =  '<p>Hi [Name goes here],</p>
            <p>Test body</p></br></br>
            ';

//If client doesn't support HTML email will display AltBody as plain text
$m->AltBody = 'Test Alt Body.';

//Send email
if($m->send()) {
    echo 'Email sent.';
} else {
    echo $m->ErrorInfo;
}

这是否有任何不正确的部分?我是PHP的新手,我很困惑为什么脚本在通过URL完成时会成功执行,而在从Ajax请求调用时则不成功。

0 个答案:

没有答案