从我能找到的和我本地ssmpt客户端已配置的代码中没有错误,并且我可以通过命令行发送邮件。但是没有邮件,也没有错误来自php。就好像php从来没有打过这个本地邮件。我'确实'将我的sendmail路径设置在我的php.ini中并重新启动了apache。我不知道还有什么可能吗?无法通过php和ssmtp发送邮件
<?php
require_once('config.php');
$attrs = array(PDO::ATTR_PERSISTENT => true);
$pdo = new PDO("mysql:host=localhost;dbname=".$dbname, $db_username, $db_password, $attrs);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$custlist = $pdo->prepare("SELECT customer_list.sms_num, carriers.carrieraddr, customer_list.contact_first, customer_list.contact_last
FROM carriers, customer_list
WHERE send_id=send_code
ORDER BY customer_list.sms_num");
#$carrierlist = $pdo->prepare("SELECT * FROM carriers");
if (isset($_POST['body'], $custlist)) {
$custlist->execute();
#var_dump($custlist);
#var_dump($_POST['body']);
while ($row = $custlist->fetch(PDO::FETCH_ASSOC)) {
#$prefix = $row['sms_num'];
#$suffix = $row['carrieraddr'];
$to = '[email protected]';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
#$body = $_POST['body'];
#var_dump($prefix);
#var_dump($suffix);
#var_dump($_POST['body']);
}
}
//$products = array();
$smscustobject = new ArrayObject($custlist);
#$smsarrayobject = new ArrayObject($carrierlist);
$pdo = null;
?>
<form action="" method="POST">
Your Message Body <input name="body" type="text" />
<input type="submit">
</form>
你发邮件到达垃圾邮箱,你检查了吗? –
@Wiggler Jtag nope,没有垃圾邮件。但多一点挖掘显示,该PHP似乎试图使用mod_mail为Apache而不是ssmtp。这将永远不会工作,我所有的smtp设置都在ssmtp而不是apache。 apache2:mail()在[/home/downlowd/www/dev/campaignLaunch.php:25]上:[email protected] - Headers:From:[email protected] – brad
啊,那么不能帮助你,这个是服务器配置,我使用nginx而不是apache。希望问题是在PHP端...所以现在肯定你可以找到谷歌的答案,我确定有ssmtp x apache配置。 –