Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么邮件不会自动发送?_Php_Email - Fatal编程技术网

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);