尝试使用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”。
感谢您的任何帮助或建议!
答案 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>';
希望这有帮助!