HTML电子邮件中的PHP代码无法正常工作

时间:2018-02-02 07:43:02

标签: php html

尝试使用PHP测试向自己发送HTML电子邮件,但HTML中的PHP代码不起作用,我不知道为什么。对不起,如果我不是很清楚,我对这个很新。

<?php 

$ccode = rand(1000, 9999);
$to = "example@gmail.com";
$from = "example2@gmail.com";
$subject = "Confirmation Code";
echo $ccode;

//begin of HTML message 
$message = '<html>
             <head>
              <title> Confirmation Code</title>
             </head>
               <body style="background-color:#004d4d">
                <div style= "text-align:center"> <img src="example.png" alt="Logo" width="300" height="300" align="top;center"> </div>
                <h1 style="font-family:verdana; color:white; text-align:center"> This is your confirmation code:  </h1>
                <p style= "text-align:center;font-size:400%;color:#009999; font-family:arial"> 
               <b> 

                //code that isn't working
               <?php 

                $ccode = rand(1000, 9999); 
                echo $ccode; 

                ?> 
              </b>
              </p>
              <p style= "text-align:center; font-family:verdana; color:white"> Please enter this code into the application. </p>
              </body>
              </html>';
              //end of message 
$headers  = "From: $from\r\n"; 
$headers .= "Content-type: text/html\r\n";

// now lets send the email. 
mail($to, $subject, $message, $headers); 

echo "Message has been sent....!"; 
?>

电子邮件照常发送,但电子邮件中的PHP部分不起作用,而是打印“$ ccode”。

感谢您的任何帮助或建议!

3 个答案:

答案 0 :(得分:4)

$message = '<html>
         ...
          </html>';
          //end of message 

这是一个字符串,其中的代码也被视为文本。您可以在将字符串分配给$ message之前声明您的变量。即:

<?php 
$ccode = rand(1000, 9999); 
$message = '<html>
         <head>
          <title> Confirmation Code</title>
         </head>
           <body style="background-color:#004d4d">
            <div style= "text-align:center"> <img src="example.png" alt="Logo" width="300" height="300" align="top;center"> </div>
            <h1 style="font-family:verdana; color:white; text-align:center"> This is your confirmation code:  </h1>
            <p style= "text-align:center;font-size:400%;color:#009999; font-family:arial"> 
           <b>'.
          $ccode .
          '</b>
          </p>
          <p style= "text-align:center; font-family:verdana; color:white"> Please enter this code into the application. </p>
          </body>
          </html>';
          //end of message 

答案 1 :(得分:0)

当你尝试声明变量$ message

时,你不能放一个代码php

但您可以使用从头开始声明的另一个变量进行连接

  

所以你可以这样做

      <?php 
      $ccode = rand(1000, 9999);
      $message = '<html> other balises' . $ccode . 'some other balises</html>';
      ?>
  

或双cote(“)

      <?php 
      $ccode = rand(1000, 9999);
      $message = "<html> other balises {$ccode}  some other balises</html>";
      ?>
  

或最后的解决方案

      <?php 
      $message = "<html> other balises";
      $ccode = rand(1000, 9999);
      $message .= $ccode;
      $message = "some other balises</html>";          
      ?>

答案 2 :(得分:0)

问题来自$message变量。

它是一个字符串,所以你不能在这里使用open php块代码。

应该是:

$message = '... <html code>' . $ccode . '... <other html code>';

希望这有帮助!