2013-05-13 112 views
0

我簡單的代碼如下:PHP和SMTP服務器

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n"; 
$headers .= "From: [email protected] \r\n"; 
$headers .= 'Bcc: [email protected]' . "\r\n"; 

$subject = "Information"; 

if (mail($email, $subject, $message, $headers)) { 
    $mail_status = "success"; 
} else { 
    $mail_status = "fail"; 
} 

if ($mail_status == "success") echo '{"status":"success"}'; 

我怎麼能支持SMTP支持?

+0

簡單的谷歌搜索應該揭示這個問題的答案。你有沒有搜索過Google和stackoverflow? – 2013-05-13 07:51:34

回答

0

必須在服務器上配置SMTP服務器,但必須通過PHP(一種編程語言)進行配置。詢問服務器管理員爲您提供SMTP詳細信息。

SMTP信息可以在php.ini或通過ini_set()

實例進行設置:

ini_set("SMTP","smtp.example.com"); 
ini_set('sendmail_from', '[email protected]'); 

順便說一句,如果你需要SMTP認證,mail()不支持它。嘗試使用其他PHP郵件庫,如SwiftMailer或PHPMailer。

+0

我知道SMTP的詳細信息,但我想爲代碼提供SMTP支持。我添加了$ host =「mail.example.com」;但沒有解決。 – Nonserviam 2013-05-13 07:35:38

+0

'$ host'只是一個變量。正如我所說的,通過'ini_set()'設置它 – Raptor 2013-05-13 07:37:15

1

正如您在標籤中提到的PHPMailer。您可以使用PHPMailer類進行此過程。

require_once('../class.phpmailer.php'); 
//include("class.smtp.php"); // optional, 
    //gets called from within class.phpmailer.php if not already loaded 

$mail    = new PHPMailer(); 

$body    = file_get_contents('contents.html'); 
$body    = eregi_replace("[\]",'',$body); 

$mail->IsSMTP(); // telling the class to use SMTP 
$mail->Host  = "mail.yourdomain.com"; // SMTP server 
$mail->SMTPDebug = 2;      // enables SMTP debug information (for testing) 
              // 1 = errors and messages 
              // 2 = messages only 
$mail->SMTPAuth = true;     // enable SMTP authentication 
$mail->Host  = "mail.yourdomain.com"; // sets the SMTP server 
$mail->Port  = 26;     // set the SMTP port for the GMAIL server 
$mail->Username = "[email protected]"; // SMTP account username 
$mail->Password = "yourpassword";  // SMTP account password 

$mail->SetFrom('[email protected]', 'First Last'); 

$mail->AddReplyTo("[email protected]","First Last"); 

$mail->Subject = "PHPMailer Test Subject via smtp, basic with authentication"; 

$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test 

$mail->MsgHTML($body); 

$address = "[email protected]"; 
$mail->AddAddress($address, "John Doe"); 

$mail->AddAttachment("images/phpmailer.gif");  // attachment 
$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment 

if(!$mail->Send()) { 
    echo "Mailer Error: " . $mail->ErrorInfo; 
} else { 
    echo "Message sent!"; 
} 

來源:http://phpmailer.worxware.com/index.php?pg=examplebsmtp