2012-07-02 87 views
0

我試圖通過PHP發送電子郵件。它給出以下警告。在PHP中通過本地主機發送電子郵件

Warning: mail() [function.mail]: Failed to connect to mailserver at 
"smtp.ntlworld.com" port 25, verify your "SMTP" and "smtp_port" setting in 
php.ini or use ini_set() in C:\wamp\www\wagafashion\customerside\BulkInquiry.php 
on line 1007 

在php.ini中,SMTP已被更改如下。

[mail function] 
; For Win32 only. 
SMTP = smtp.ntlworld.com 
smtp_port = 25 

; For Win32 only. 
sendmail_from = [email protected] 

配置php.ini後,WAMP重新啓動併發出上述警告。在PHP中通過本地主機發送電子郵件還有哪些其他設置?

+0

*其他*設置?修復您*已有*的設置... –

+0

您可以通過命令行連接到端口25上的那臺服務器嗎?你需要添加一個用戶名和密碼? – andrewsi

+0

將SMTP更改爲'smtp.gmail.com'並將端口更改爲'587'會給出警告'Warning:mail()[function.mail]:SMTP服務器響應:530 5.7.0必須首先發出STARTTLS命令。在線1007上的C:\ wamp \ www \ wagafashion \ customerside \ BulkInquiry.php中的ru4sm13726850pbc.66。 – Tiny

回答

1

使用的PHPMailer來代替:https://github.com/PHPMailer/PHPMailer

如何使用它:

require('./PHPMailer/class.phpmailer.php'); 
$mail=new PHPMailer(); 
$mail->CharSet = 'UTF-8'; 

$body = 'This is the message'; 

$mail->IsSMTP(); 
$mail->Host  = 'smtp.gmail.com'; 

$mail->SMTPSecure = 'tls'; 
$mail->Port  = 587; 
$mail->SMTPDebug = 1; 
$mail->SMTPAuth = true; 

$mail->Username = '[email protected]'; 
$mail->Password = '[email protected]#'; 

$mail->SetFrom('[email protected]', $name); 
$mail->AddReplyTo('[email protected]','no-reply'); 
$mail->Subject = 'subject'; 
$mail->MsgHTML($body); 

$mail->AddAddress('[email protected]', 'title1'); 
$mail->AddAddress('[email protected]', 'title2'); /* ... */ 

$mail->AddAttachment($fileName); 
$mail->send();