我用网页运行时正常,能发送,用命令运行php文件时报错,主要代码经检查无误,如下function sendmail($setEmail, $setName, $body, $subject) { require_once("PHPMail/phpmailer.php"); $mail = new PHPMailer ( true ); // the true param means it will throw exceptions on errors, which we need to catch $mail->IsSMTP (); // telling the class to use SMTP try { $mail->SMTPAuth = true; // enable SMTP authentication $mail->SMTPSecure = SBT_SSL; // sets the prefix to the servier $mail->Host = SBT_SMTP_HOST; // sets GMAIL as the SMTP server $mail->Port = SBT_SMTP_PORT; // set the SMTP port for the GMAIL server $mail->Username = SBT_SMTP_USER; // GMAIL username $mail->Password = SBT_SMTP_PASS; // GMAIL password $mail->AddReplyTo ( SBT_MAIL_FROM, SBT_MAIL_FROM_NAME ); $mail->AddAddress ( $setEmail, $setName ); $mail->SetFrom (SBT_SMTP_USER,SBT_SMTP_USER); //sender name $mail->Subject = $subject; $mail->MsgHTML ( $body ); if (! $mail->Send ()) {//(这边没报错) echo "Message could not be sent. <p>"; echo "Mailer Error: " . $mail->ErrorInfo; exit (); } } catch ( phpmailerException $e ) { echo $e->errorMessage (); //Pretty error messages from PHPMailer(就是这边输出错误的) } catch ( Exception $e ) { echo $e->getMessage (); //Boring error messages from anything else! }}
问下是什么原因,目的是为了可以用linux计划任务来执行该PHP文件
我用的是gmail邮箱,465
$mail->Host ="smtp.gmail.com"; $mail->Port =465
错误代码:SMTP Error: Could not connect to SMTP host,
龙腾虎跃的回答
php --ini 一下,看使用的ini是否和作为apache模块运行的php一致.
我说的是命令php --ini,看cli下运行的php和apache模块运行的php是否公用一个ini文件有时候phpcli单独安装的话会自带一个ini文件.
C:/wamp/bin/php/php5.2.6>php --iniConfiguration FILE (php.ini) Path: C:/WINDOWSLoaded Configuration FILE: C:/wamp/bin/php/php5.2.6/php.iniScan FOR additional .ini files IN: (NONE)Additional .ini files parsed: (NONE)
老虎头,你说对了,不一致唉,怎么改?
那么就使用php -c 命令引入你的正确ini路径