我正在努力建立一个在线系统,人们可以在系统内发送潜在客户的HTML电子邮件......
除了当我使用富文本编辑器输入链接时,我已经完成了所有工作,并且源代码中的所有内容都很好,但是当我查看收件箱中的电子邮件时,该链接无效并且已更改为:
X-MSG:// 30 /%22http://example.com/%22
我不明白...
我认为这是html post函数的问题,因为我通过html表单和$_POST
方法提交它...当我在下一页回应语句时,链接是 http://workwithmandy.co/%22http://phobes.com/%22
,这很奇怪,因为系统所在网站的根目录是 http://workwithmandy.co/
。
关于为什么会这样做的任何想法?
以下是表单:
<form action="<?php echo $editFormAction; ?>" method="POST" name="form" id="sendemailform">
<fieldset>
<div class="emailtablecontainer">
<table width="525" border="0" cellspacing="10">
<tr>
<td><label>To:</label></td>
<td><select data-placeholder="Select Lead(s) To Email..." multiple="true" class="chzn-container-multi" name="selectleads"style="width:500px;">
<?php
do {
?>
<option value="<?php echo $row_rsAllLeads['Email']?>"><?php echo $row_rsAllLeads['FullName']?></option>
<?php
} while ($row_rsAllLeads = mysql_fetch_assoc($rsAllLeads));
$rows = mysql_num_rows($rsAllLeads);
if($rows > 0) {
mysql_data_seek($rsAllLeads, 0);
$row_rsAllLeads = mysql_fetch_assoc($rsAllLeads);
}
?>
</select></td>
</tr>
<tr>
<td><label>Subject:</label></td>
<td><input class="inputs" name="subjectfield" type="text"></td>
</tr>
<tr>
<td><label>Message:</label></td>
<td><textarea id="sendemailtextarea" name="messagefield"></textarea></td>
<script>
CKEDITOR.replace( 'sendemailtextarea',
{
toolbar : 'SendEmailToolbar'
});
</script>
</tr>
</table>
</div>
<input class="submitemailbuttonsprite submitemailbutton1" name="submitemail" type="submit" value="Send Email(s)">
</fieldset>
<input type="hidden" name="MM_insert" value="form">
</form>
以下是实际的Php代码:
<?php
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
echo $_POST['messagefield'];
$to = $_POST['selectleads'];
$subject = $_POST['subjectfield'];
$body = $_POST['messagefield'];
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: " . $row_rs_CurrentUser['FirstName'] . " " . $row_rs_CurrentUser['LastName'] . " <" . $row_rs_CurrentUser['Email'] . ">";
if (mail($to, $subject, $body, $headers)) {
} else {
echo("<p>Message delivery failed...</p>");
}
}
?>
答案 0 :(得分:0)
我知道回答这个问题为时已晚。但它可能会帮助其他有需要的人。
这与电子邮件链接的PHP Prepends x-msg://
不同。
实际上,电子邮件客户端会在x-msg://
前加上该链接。因为他们将没有http://
或https://
的链接作为无效URI。为了使其有效,他们将x-msg://
添加到链接中。
请检查您的href链接中是否遗漏了http://
或https://
。
实施例: 第一个例子可能无法正常工作:
<a href="www.example.com">www.example.com</a> // x:msg:// may be prepended by some of the email clients
这肯定会正常工作:
<a href="http://www.example.com">www.example.com</a> // x:msg:// will not be prepended by any email client