我正在尝试使用PHP创建电子邮件自动化。最初我有这个:
function send_email($email) {
$message = "Hello! Here is an email message";
mail($email, "Subject Line", $message, "from: email@ouremail.co.uk");
}
但是我希望通过电子邮件发送消息的时间更长,并包含一些HTML标记(简单的h1和p标记)。
我是PHP的新手,但是可以找到有关如何在HTML中输出PHP的信息,而不是如何在PHP变量中包含HTML。我需要能够将标记存储在$message
。
另一件事我无法理解。如果我想在我的HTML中写出don't
之类的字词,那么我就无法使用“'
”来打开和关闭。我必须改用"
。它是否正确?
ETA:无论如何通过此功能发送整个HTML文件?所以我可以为电子邮件创建一个漂亮的模板,然后通过电子邮件发送.html文件。
答案 0 :(得分:3)
不要忘记设置邮件标题以支持HTML。
就PHP而言,它几乎是标准的:
$message = "<div>Hello! Here is an <span class='myClass'>email</span> message</div>";
另请阅读heredoc和nowdoc:http://www.php.net/manual/en/language.types.string.php。在编写长多行消息时,他们将非常有用。例如:
$message = <<<EOT
Hello!
Here is an <span class='myClass'>email</span> message!
EOT;
对于引号,您需要使用反斜杠进行转义,如下所示:
$message = "Hello, \"people\"! Don't you know this is an email message";
或
$message = 'Hello, "people"! Don\'t you know this is an email message';
请注意,使用双引号解析字符串中的PHP变量:
$x = 'world';
$message = "Hello $x"; // outputs: Hello world
$message = 'Hello $x'; // outputs: Hello $x
您可能还想考虑在PHP字符串中编码/解码HTML实体。这是一个好的开始:http://php.net/htmlentities
关于模板,您始终可以创建包含模板消息的函数或包含文件,然后使用每条消息的自定义数据进行装饰。有很多方法可以实现这一目标。