我想使用vBulletin,以HTML而不是纯文本形式发送电子邮件。我使用了nl2br,但这通过删除存储在数据库的电子邮件短语中的\ r \ n标记而破坏了电子邮件文本的布局。
我在线搜索了preg_replace函数,以用
标记替换返回值和换行符。这很好。
我的下一个问题是电子邮件中的链接。使用nl2br,这删除了链接,仅保留了文本。我再次搜索了一种用html标记替换链接的函数,并找到了一个。这很好。
我现在遇到的问题是,电子邮件中有一个“已发送”字样的随机空间。有什么想法为什么会发生以及代码是否可以改进?
这是我的代码。
$linkReplace = preg_replace('@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@', '<a href="$1" target="_blank">$1</a>', $message);
$returnReplace = preg_replace("/\r\n|\r|\n/",'<br/>',$linkReplace);
$message = $returnReplace;
$headers = str_replace('Content-Type: text/plain', 'Content-Type: text/html', $headers);
这是从电子邮件短语中获取的$ message:
请勿回复此电子邮件!
尊敬的$ touserinfo [username],
您已经收到来自$ vboptions [bbtitle]的新私人消息,来自 $ fromusername,标题为“ $ plaintext_title”。
要阅读原始版本,回复或删除此消息,请 必须在这里登录:$ vboptions [bburl] /private.php
这是发送的消息:
$ plaintext_message
同样,请不要回复此电子邮件。您必须转到以下 回复此私人消息的页面:$ vboptions [bburl] /private.php
祝一切顺利,$ vboptions [bbtitle]
这是电子邮件: