php 表单邮件功能

php form mail function

我正在使用邮件功能将其邮寄到我的电子邮件地址,但我希望它向我发送一条包含变量的消息。 (我试过用concatenation point来拼接,但是好像不行,或者我没用对)

代码:

<?php

$myEmail = "lol@lol.com";
$emailOnderwerp = "Contact form";
$naam = $_POST['naam'];
$email = $_POST['email'];
$onderwerp = $_POST['onderwerp'];
$bericht = $_POST['bericht'];
$mail1 = "<h1>";
$mail2 = "</h1><h2>Afzender:</h2><p>";
$mail3 = " (";
$mail4 = ")</p><h2>Bericht:</h2><p>";
$mail5 = "</p>";

mail("$myEmail","$emailOnderwerp",MESSAGE,"Content-type:text/html; charset=iso-8859-1"."\r\n"."From:info@aikodedoncker.donboscohalle.net");
?>

我知道 MESSAGE 不应该放在那里,它只是为了方便看到消息需要放在那里。

所以我希望邮件是 $mail1 + $onderwerp + $mail2 + $naam + $mail3 + ...

我怎样才能做到这一点?

当您使用双引号时,您可以将变量直接添加到您的消息字符串中(尽管它读起来不太好)

<?php

$myEmail = "lol@lol.com";
$emailOnderwerp = "Contact form";
$naam = $_POST['naam'];
$email = $_POST['email'];
$onderwerp = $_POST['onderwerp'];
$bericht = $_POST['bericht'];
$message = "<h1>$onderwerp</h1><h2>Afzender:</h2><p>($naam)</p><h2>Bericht</h2><p>$bericht</p>";

mail($myEmail,"$emailOnderwerp",$message,"Content-type:text/html; charset=iso-8859-1"."\r\n"."From:info@aikodedoncker.donboscohalle.net")
?>

(虽然你可能想检查主题......但从技术上讲它应该有效)

另一种选择类似于

$message.= "text and tags";
$message.= $variable

或者您可以使用 HEREDOC 语法

$message=<<<ENDOFMESSAGE
<tags> and $variables
...
ENDOFMESSAGE;

还需要在"Content-type"前加上双引号...

希望对您有所帮助。

正如我在评论中提到的,你想多了,有一些更简单的方法可以解决这个问题。

要么将整个块更改为:(不需要所有这些变量)

$mail = "

<h1>
</h1><h2>Afzender:</h2><p>
 (
)</p><h2>Bericht:</h2><p>
</p>

";

然后

mail("$myEmail","$emailOnderwerp",$mail,...

但是,如果您希望继续使用现有的:

您可以通过几种方式连接,例如:

$mail = $mail1 . "" . $mail2 . "" . $mail3 . "" . $mail4 . "" . $mail5;

$mail = "$mail1 $mail2 $mail3 $mail4 $mail5";

旁注:

您缺少结束分号:

mail($myEmail,"$emailOnderwerp",$message,...")

如果那是您的实际代码,这会引发解析错误。