PHP电子邮件验证 - 如何组织邮件?使用HTML标签?

时间:2009-11-22 18:53:13

标签: php email

当我向用户发送电子邮件验证消息时,如何构建它看起来像这样:

alt text

如何添加链接?使用标签?和新线?

$message = 'Thanks for signing up!' - a newline afterwards...
then blablablah *link to confirmation*

我真的很感激这方面的任何帮助。

6 个答案:

答案 0 :(得分:3)

这取决于您发送的电子邮件类型。现代电子邮件客户端支持两种类型的电子邮件:

  • 文字 - 在这种情况下,您只需添加指向您的邮件的链接,如原始文字。不需要特殊的格式化,但它将依赖于电子邮件客户端来处理链接。大多数电子邮件客户端都会将从http://开始的字符串解释为链接。
  • Html - 在这种情况下,只需像往常一样添加链接html代码<a href="...">...</a>。大多数电子邮件代理都很好地支持基本的HTML。

默认情况下mail()函数以原始文本发送电子邮件。这是一个小例子:

$lines = array(
    "Hello!",
    "Your password is ...",
    "Click following link to unsubscribe:",
    "http://your_site/unsubscribe?..."
);
$body = implode("\r\n", $lines); ## join lines
mail($to, $subject, $body);      ## and send text email

答案 1 :(得分:1)

如果您使用纯文本电子邮件程序发送它几乎总是会将URL转换为可点击的链接。否则,您可以发送HTML电子邮件。

如何整理代码:

Smarty模板对此也很有用。您可以将变量传递给.tpl模板,因此您的电子邮件模板位于自己的文件中,只需要标记/字段。然后,PHP可以提取此内容,解析它,并将正文作为电子邮件发送。

答案 2 :(得分:0)

只需构建链接并将其添加到电子邮件正文中即可。邮件客户端指出什么是链接。或者,您可以查看完整的HTML电子邮件路径。

答案 3 :(得分:0)

你有几种选择。

1.您可以使用纯文本作为mime类型,然后将$ message var设置为:

$message = "Thank you... \n\r";
$message.= "next line... \n\r";

或使用heredoc

$message = <<<BLOCK
Thank you...
next line...
BLOCK;

我认为大多数电子邮件程序都应该转换链接。但如果你需要明确地这样做,

2.然后,您可以随时为您的电子邮件使用html mime类型,并将其作为邮件正文提供基本HTML。

答案 4 :(得分:0)

与其他人说的一样,只需发送电子邮件,让客户找出可点击的内容。

只需在邮件脚本可访问的文件夹中创建一个简单的文本文件模板,例如

Thanks for signing up

This is your login data
------------
u: [username]
p: [password]
-------------

Active your account by clicking [activation-link]

然后在您的邮件脚本中,加载此文件并str_replace()占位符。这样,您就不必使用电子邮件消除邮件脚本,并且无需触摸脚本即可轻松维护任何更改。你也不必费心去编码换行符。

我强烈反对使用HTML邮件。接收端存在巨大的不确定性。用户可以使用无法或禁用的客户端访问其邮件以呈现HTML,因此您必须使用备用文本(多部分)发送邮件。此外,在客户端呈现HTML是一个很大的痛苦。

答案 5 :(得分:0)

要专门解决有关新行的问题,您可以采用以下几种方法:

1

$message = 'Thanks for signing up!
blablablah *link to confirmation*'

在行尾使用单引号和简单的<enter>

2

$message = "Thanks for signing up!\n\r
blablablah *link to confirmation*"

使用双引号,\ n \ r(这会在行尾创建新行 - 实际为line feed and a carriage return)和简单<enter>(这完全是为了您自己的可读性。< / p>

3

使用heredoc作为nowk建议。