我創建了一個非常簡單的PHP系統,使用MySQL數據庫和PHP將郵件發送到郵件列表。它還沒有完成,因爲通過mail()函數發送的郵件馬上進入大多數郵件程序的垃圾文件夾,我將來會使用PHP連接到我的SMTP服務器。儘管我想先解決一些問題。
<table border="0">
<form method="post" action="send.php">
<tr><td>Onderwerp:</td><td><input type="text" style="width:200px;" name="sub" /></td></tr>
<tr><td>Bericht:</td><td><textarea name="mes" style="width:200px; height:100px;"></textarea></td></tr>
<tr><td></td><td><input type="submit" style="width:200px;" value="Verzend" /></td></tr>
</form>
</table>
當消息在上面textarea的它提交給下面的腳本(send.php)填充:
while($row = mysql_fetch_array($result)){
$to = $row['email'];
$subject = $_POST['sub'];
$message = $_POST['mes'];
$headers = 'From: [email protected]>' . "\r\n" . 'Reply-To: [email protected]' . "\r\n" . 'X-Mailer: PHP/' . phpversion() . "\r\n" . 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
mail($to, $subject, $message, $headers);
}
當然還有上面這一些腳本連接到數據庫等等,但這不是相關的。正如你所看到的,通過$ _POST接收到的消息文本被放入mail()函數中使用的變量中。
但是,當我在textarea中使用多行時,腳本中的某個位置全部轉換爲一個巨大的行,最終會創建一個亂七八糟的郵件。正如你們中的一些人可能看到的,我已經創建了一個標題,表示郵件的內容是HTML。這是因爲我在通過$ _POST發送的文本週圍放置了一個<p>
元素。我試圖刪除它,因爲它可能是把它全部轉換成一行的東西。但是這沒有幫助。
當然,您可以在HTML中使用<br />
,但如果要求列表中的所有用戶使用它來創建新行,那將是愚蠢的。所以:有沒有辦法讓電子郵件中的多行保留,而不必在文本框中填寫任何不同的內容?
感謝您提前回答!
謝謝!以下也是@xdazz。我以爲我曾嘗試nl2br()之前,它不工作。顯然我做錯了,因爲它現在完美了!一個很短的答案長問題... – Stijn 2012-02-06 15:29:30