我正在尝试使用 PHP 创建电子邮件自动化。最初我有这个:
function send_email($email) {
$message = "Hello! Here is an email message";
mail($email, "Subject Line", $message, "from: email@ouremail.co.uk");
}
Run Code Online (Sandbox Code Playgroud)
不过,我想让通过电子邮件发送的消息更长一些,并包含一些 HTML 标记(简单的 h1 和 p 标记)。
我是 PHP 新手,但可以找到有关如何在 HTML 中输出 PHP 的信息,但无法找到如何在 PHP 变量中包含 HTML 的信息。我需要能够将标记存储在里面$message。
还有一件事我无法理解。如果我想像 HTML 中那样编写单词don't,那么我不能使用“ '”来打开和关闭。我必须用它"来代替。它是否正确?
ETA:有没有办法通过此函数发送整个 HTML 文件?因此,我可以为电子邮件创建一个漂亮的模板,然后通过电子邮件发送该 .html 文件。
不要忘记设置您的邮件标头以支持 HTML。
就 PHP 而言,它几乎是标准的:
$message = "<div>Hello! Here is an <span class='myClass'>email</span> message</div>";
Run Code Online (Sandbox Code Playgroud)
另请阅读有关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;
Run Code Online (Sandbox Code Playgroud)
对于引号,您需要使用反斜杠进行转义,如下所示:
$message = "Hello, \"people\"! Don't you know this is an email message";
Run Code Online (Sandbox Code Playgroud)
或者
$message = 'Hello, "people"! Don\'t you know this is an email message';
Run Code Online (Sandbox Code Playgroud)
请注意,使用双引号解析字符串内的 PHP 变量:
$x = 'world';
$message = "Hello $x"; // outputs: Hello world
$message = 'Hello $x'; // outputs: Hello $x
Run Code Online (Sandbox Code Playgroud)
您可能还想考虑对 PHP 字符串中的 HTML 实体进行编码/解码。这是一个好的开始: http: //php.net/htmlentities
关于模板,您始终可以创建一个包含模板消息的函数或包含文件,然后使用每条消息的自定义数据对其进行装饰。有很多方法可以实现这一目标。
| 归档时间: |
|
| 查看次数: |
4007 次 |
| 最近记录: |