Php 为什么邮件不会自动发送?
这个想法是在订阅过期一天后自动向我的用户发送邮件Php 为什么邮件不会自动发送?,php,email,Php,Email,这个想法是在订阅过期一天后自动向我的用户发送邮件 $enviar = $datoMesPazysalvo[2] - $ayer; if($enviar == 1){ $nombre = $row_registroClientes['nombres'] + $row_registroClientes['apellidos']; $email = $row_registroClientes['correo']; $telefono = $ro
$enviar = $datoMesPazysalvo[2] - $ayer;
if($enviar == 1){
$nombre = $row_registroClientes['nombres'] + $row_registroClientes['apellidos'];
$email = $row_registroClientes['correo'];
$telefono = $row_registroClientes['telefono'];
// multiple recipients
$to = 'info@vulpini.co' . ', '; // note the comma
$to .= '$email';
// subject
$subject = 'Fight Club Bogota, Información importante!!';
// message
$message = '
<html>
<head>
<title>Fight Club Bogota, Información importante!!</title>
</head>
<body>
<p>Tu matricula vence mañana $datoMesPazysalvo[2]</p>
<span>Ponte en contacto con nosotros para renovar</span>
</body>
</html>
';
// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Additional headers
$headers .= 'To: $nombres <$email>, Administrador <info@vulpini.co>' . "\r\n";
$headers .= 'From: Administrador <administrador@fightclubbogota.com>' . "\r\n";
// Mail it
mail($to, $subject, $message, $headers);
}
$enviar=$datoMesPazysalvo[2]-$ayer;
如果($enviar==1){
$nombre=$row_registroClientes['nombre']+$row_registroClientes['apellidos'];
$email=$row_registroclients['correo'];
$telefono=$row_registroclients['telefono'];
//多个收件人
$to$info@vulpini.co“.”,“;//注意逗号
$to.=“$email”;
//主题
$subject='波哥大搏击俱乐部,重要信息!!';
//信息
$message='1
波哥大搏击俱乐部,重要信息!!
你的母质是什么?$datoMesPazysalvo[2]
诺索特罗斯帕雷诺瓦接触桥
';
//要发送HTML邮件,必须设置内容类型标题
$headers='MIME版本:1.0'。“\r\n”;
$headers.=“内容类型:text/html;字符集=iso-8859-1”。“\r\n”;
//附加标题
$headers.='到:$nombres,administrator'。“\r\n”;
$headers.='发件人:Administrator'。“\r\n”;
//邮寄
邮件($to、$subject、$message、$headers);
}
为什么这不起作用?我认为逻辑是正确的,但我不完全确定,如果正确的话
我希望有人能帮助我
非常感谢。如果不知道“$ayer”和“$datoMesPazysalvo[2]”是什么类型和值,很难判断 对于这整件作品:
$enviar = $datoMesPazysalvo[2] - $ayer;
if($enviar == 1)
我建议您将该逻辑封装到一个函数“shouldSendEmail”中,您可以对该函数进行单元测试,并确保每次都得到正确的输出:
if(shouldSendEmail(){
...
}
到底什么不起作用 如果它不发送邮件。。。首先,如果发送php testmail,请使用最简单的形式的mail()函数检查它是否工作(省去额外的标题): (只需将电子邮件地址替换为您的) 如果无法正常工作,您的电子邮件设施/服务(sendmail?)可能未正确设置或配置错误 如果它起作用,那么可能您没有正确构造变量。 插入此语句并再次运行代码,以查看变量是否正常,而不是mail()语句
var_dump($to);
var_dump($subject);
var_dump($message);
var_dump($headers);
希望这有帮助……$Datomespzysalvo是一个日期,$Datomespzysalvo[2]=订阅到期的日期,$ayer=到期的前一天,谢谢,我将尝试使用shouldSendEmail()以这种方式处理天似乎有点危险。想想如果你的到期日是一个月的第一天。如果$ayer是一个月的第31天,您将计算“1-31==1”,这显然不起作用。如果您正在处理日期,您应该尝试使用包含大量函数的“DateTime”对象。如果使用PHP5.5+,最好使用DateTimeImmutable。调用此例程的函数是什么?如果不调用它,它将如何自动执行?
var_dump($to);
var_dump($subject);
var_dump($message);
var_dump($headers);