2012-02-24 198 views
6

這是我的腳本發送一個html郵件。但執行此腳本後,我沒有收到郵件。我不知道如何設置用戶名和密碼使用ini_set(「 SMTP」, 「smtp.xyz.com」);?他們有沒有簡單的方法來設置SMTP而不使用任何外部庫文件?如何使用ini_set設置smtp用戶名和密碼

$name=$_POST['name']; 
$email=$_POST['email']; 
$mobile=$_POST['mobile']; 
$messege="Dear Webmaster,<br /> An user sent query.<br /> Query: <br/> ".$_POST['messege']."<br /><br /><br /> <b>User Contact Detail:</b><br />Name:".$name."<br/> Email:".$email."<br />Mobile:".$mobile; 

$to = '[email protected]'; 
$subject = 'xx'; 

$headers = "From: [email protected]\r\n" . 
'X-Mailer: PHP/' . phpversion() . "\r\n" . 
"MIME-Version: 1.0\r\n" . 
"Content-Type: text/html; charset=utf-8\r\n" . 
"Content-Transfer-Encoding: 8bit\r\n\r\n"; 

ini_set("SMTP","smtp.xyz.com"); 
ini_set("smtp_port","25"); 
ini_set("sendmail_from","[email protected]"); 
mail($to, $subject, $message, $headers); 
+3

在這裏看到: http://stackoverflow.com/questions/112190/php-ini-smtp-how-do-you-pass-username-password – 2012-02-24 12:04:58

+0

你也可以考慮使用已經做了庫抽象發送電子郵件的錯綜複雜的努力(http://swiftmailer.org/) – F21 2012-02-24 12:21:49

+0

我在Linux操作系統上使用XAMPP,所以下面的腳本將工作? SMTP = mail.yourserver.com smtp_port = 25 auth_username = smtp-username auth_password = smtp-password sendmail_from = [email protected] – Pank 2012-02-24 12:38:14

回答

4

正如你可以讀取in the PHP manual,PHP的SMTP functionaliy僅在Windows上使用,它只是非常基本的功能。如果你需要在Linux上使用它,並且/或者需要用戶名和密碼認證,SMTPS等,你需要使用庫如SwiftMailerPHP Mailer等,或者你需要在你自己的主機上設置一個外部的SMTP服務器,如Exim

但是,您應該嘗試設置SMTP服務器,除非您在這些問題上有經驗,否則您會在幾天內使您的服務器成爲垃圾郵件發送者的巢穴。