我試圖將一些代碼從一個PHP教程中展示出來,該教程展示瞭如何使一個非常基本的PHPMailer表單發送一個純文本電子郵件到一個郵件列表。簡單性正是我想要的大部分,因爲有幾個人會使用這種形式,儘管我想包括在表單中使用HTML的能力。因此,例如,我想使用<center>
標籤或插入托管圖像<img src="www.link.com/img.jpg">
以使電子郵件更豐富一點。帶有textarea格式和html的PHPMailer
目前,我無法弄清楚如何啓用html嵌入。如果我把HTML代碼轉換成一種形式,它只是簡單地輸出代碼等<b><i>text</i></b>
那裏,因爲我想顯示爲剛剛電子郵件:文本
我想這可能是IsHTML(True);
可變的,但當我發送電子郵件時,一切似乎都正常。如果我擺脫<input type
並將其更改爲<span
,那麼電子郵件只是空白。
這裏是我工作過的原代碼:http://yorkspace.wordpress.com/simple-php-mailing-list/
這裏是sendmail.php,這是其中一個去編輯郵件,預覽,然後發送:
<?php
require "maillist-settings.inc.php";
if ($_POST['preview'])
{
$email_array = $_POST['emaillist'];
if (is_array($email_array))
{
$subject = $_POST['emailtitle'];
$message = $_POST['emailmessage'];
$bcc_list = implode(", ", $email_array);
echo "<table><tr><td>";
echo "<form action=\"" . $_SERVER['SCRIPT_URL'] . "\" method=\"POST\">";
foreach ($email_array as $email_address)
{
echo "<input type=\"hidden\" name=\"emaillist[]\" value=\"" . $email_address . "\">";
}
echo "<input type=\"hidden\" name=\"emailtitle\" value=\"" . $subject . "\">";
echo "<input type=\"hidden\" name=\"emailmessage\" value=\"". $message ."\">";
echo "<input type=\"submit\" name=\"sendemail\" value=\"Send Email\"></form>";
echo "</td></tr></table>";
}
else if ($_POST['sendemail'])
{
LoadLib_PHPMailer();
$mail = new MLMail;
$email_array = $_POST['emaillist'];
if (is_array($email_array) == TRUE)
{
$mail->AddAddress($mail->From);
$mail->Subject = stripslashes($_POST['emailtitle']);
$mail->Body = stripslashes($_POST['emailmessage']);
if(!$mail->Send())
echo "There has been an error sending email:<br><br><b>" . $mail->ErrorInfo . "</b>";
else
echo "Message has been sent successfully.<br><br><a href=\"" . $_SERVER['SCRIPT_URL'] . "\">Send another message</a>";
$mail->ClearAddresses();
}
}
else
{
$sEditSubject = $_POST['emailtitle'];
if (isset($sEditSubject))
$subject = $sEditSubject;
else
$subject = "";
$sEditMessage = $_POST['emailmessage'];
if (isset($sEditMessage))
$message = $sEditMessage;
else
{
$message = "\n\n\n<br>FOOTER</BR>\n\n";
}
echo "Subject:";
echo "<br><input type=\"text\" name=\"emailtitle\" size=\"80\" value=\"" . htmlspecialchars(stripslashes($subject)) . "\"></input>";
echo "<br>Message:";
echo "<br><textarea name=\"emailmessage\" rows=\"20\" cols=\"72\">" . htmlspecialchars(stripslashes($message)) . "</textarea>";
echo "<br><input type=\"submit\" name=\"preview\" value=\"Preview\"></form>";
}
?>
和這是郵件列表,settings.inc.php其從sendmail.php
<?php
$listname = "Mailing List";
$listfile = "list.csv";
$sPHPMAILER_PATH = "phpmailer";
$sProtocol = "http://";
$sReferrer = "index.php";
$bEmailSend = true;
$sSendType = "smtp";
$sFromEmailAddress = "[email protected]";
$sFromName = "my name";
$sSMTPHost = "mail.smtp.com";
$sSMTPAuth = true;
$sSMTPUser = "[email protected]";
$sSMTPPass = "password";
$iSMTPPort = 25;
$ishtml = true;
require $sPHPMAILERpath . "class.phpmailer.php";
require $sPHPMAILERpath . "class.smtp.php";
// Define parameters as class MLMail
class MLMail extends PHPMailer {
// Set default variables for all new objects
var $From;
var $FromName;
var $Mailer;
var $IsHtml;
var $WordWrap;
var $Host;
var $SMTPAuth;
var $Username;
var $Password;
var $Port;
function MLMail() {
parent::SetLanguage('en','phpmailer/language/');
$this->From = $GLOBALS['sFromEmailAddress'];
$this->FromName = $GLOBALS['sFromName'];
$this->Mailer = $GLOBALS['sSendType'];
$this->IsHtml = $GLOBALS['ishtml'];
$this->WordWrap = $GLOBALS['sWordWrap'];
if ($this->Mailer == "smtp")
{
$this->Port = $GLOBALS['iSMTPPort'];
$this->Host = $GLOBALS['sSMTPHost'];
$this->SMTPAuth = $GLOBALS['sSMTPAuth'];
if ($this->SMTPAuth) {
$this->Username = $GLOBALS['sSMTPUser'];
$this->Password = $GLOBALS['sSMTPPass'];
}
}
}
}
你有沒有試過htmlentities? [鏈接](http://ch2.php.net/manual/en/function.htmlentities.php) – kamalo 2012-02-14 18:11:39