2013-05-13 103 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