2014-12-03 2 views
1

php (xampp)를 사용하여 Gmail 계정에서 이메일을 보내려고합니다. stackoverflow를 통해 검색하고 xammpp의 파일을 sendmail.ini 및 php.ini로 변경했습니다.php xampp mail() 함수가 작동하지 않습니다.

C : \ xampp \ php \ php.ini 나는 줄의 시작 부분에서 세미콜론을 제거했습니다. extension=php_openssl.dll을 사용하여 localhost 용 Gmail에 SSL을 작동시킵니다. \ XAMPP \ 센드 \ sendmail.ini [메일 기능]에서의 php.ini 파일

제가 C에이어서

SMTP=smtp.gmail.com 
smtp_port=25 
sendmail_from = [email protected] 
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t" 

변경. 내가

<?php 
$to = '[email protected]'; 
$subject = 'Test email'; 
$message = "Hello World!\n\nThis is my first mail."; 
$headers = "From: [email protected]\r\nReply-To: [email protected]"; 
$mail_sent = @mail($to, $subject, $message, $headers); 
echo $mail_sent ? "Mail sent" : "Mail failed"; 
?> 

다음 브라우저로이 페이지에 가서 간단한 메일 기능을 쓴 다음

[sendmail] 

smtp_server=smtp.gmail.com 
smtp_port=25 
error_logfile=error.log 
debug_logfile=debug.log 
[email protected] 
auth_password=my-gmail-password 
[email protected] 

코드를 다음과 같이 sendmail.ini에있는 모든 기존 코드를 대체 는 메일 실패로 에코있어 .

는 내 디버그 파일을보고 내가 무슨 문제를 받고 있지 않다

14/12/03 18:24:00 ** --- MESSAGE BEGIN --- 
14/12/03 18:24:00 ** To: [email protected] 
14/12/03 18:24:00 ** Subject: Test email 
14/12/03 18:24:00 ** From:[email protected] 
14/12/03 18:24:00 ** Reply-To:[email protected] 
14/12/03 18:24:00 ** 
14/12/03 18:24:00 ** Hello World! 
14/12/03 18:24:00 ** 
14/12/03 18:24:00 ** This is my first mail. 
14/12/03 18:24:00 ** --- MESSAGE END --- 
14/12/03 18:24:01 ** Connecting to smtp.gmail.com:25 
14/12/03 18:24:08 ** Connected. 
14/12/03 18:24:08 << 220 mx.google.com ESMTP o17sm23150442pdn.33 - gsmtp<EOL> 
14/12/03 18:24:08 >> EHLO Mukul-PC<EOL> 
14/12/03 18:24:10 << 250-mx.google.com at your service, [223.186.182.29]<EOL>250-SIZE 35882577<EOL>250-8BITMIME<EOL>250-STARTTLS<EOL>250-ENHANCEDSTATUSCODES<EOL>250-PIPELINING<EOL>250-CHUNKING<EOL>250 SMTPUTF8<EOL> 
14/12/03 18:24:10 ** Authenticating as [email protected] 
14/12/03 18:24:10 >> STARTTLS<EOL> 
14/12/03 18:24:12 << 220 2.0.0 Ready to start TLS<EOL> 
14/12/03 18:24:14 >> QUIT<EOL> 

lots of codes in unknown language. 

14/12/03 18:21:47 ** Disconnected. 
14/12/03 18:21:47 ** Disconnecting from smtp.gmail.com:25 
14/12/03 18:21:47 ** Disconnected. 
14/12/03 18:21:47 ** Disconnected. 
14/12/03 18:21:47 ** Connection Closed Gracefully. 

을 얻었다.

+0

이 모든 서비스를 다시 시작 했 :

이 내 결과? –

+1

포트 587을 구성하지만 포트 25에 연결합니다. 그런 다음 실패한 포트 25를 통해 TLS를 시도합니다. –

+0

질문을 올리는 동안 실수로이 코드에 587을 적었습니다. 죄송합니다 .. Lemme 업데이트 .1 초 .. – MukulAgr

답변

3

좋아, 나는이 일을 얻었다. 불행히도 TLS에서는 포트 587이 우리 네트워크에서 차단되어 있으므로 포트 465를 사용해야했습니다. TLS도 작동 할 것으로 기대합니다.

XAMPP 5.6.3을 사용했습니다.

센드 메일 설정 :

[sendmail] 
smtp_server=smtp.gmail.com 
smtp_port=465 
smtp_ssl=auto 
error_logfile=error.log 
debug_logfile=debug.log 
auth_username==*****@gmail.com 
auth_password=********* 
force_sender=*****@gmail.com 

PHP의 설정 :

[mail function] 
SMTP=smtp.gmail.com 
smtp_port=465 
sendmail_from = *****@gmail.com 
sendmail_path = "\"c:\xampp\sendmail\sendmail.exe\" -t" 

코드 :

<?php 
$to = '[email protected]'; 
$subject = 'Test email'; 
$message = "Hello World!\n\nThis is my first mail."; 
$headers = "From: *****@gmail.com\r\nReply-To: *****@gmail.com"; 
$mail_sent = @mail($to, $subject, $message, $headers); 
echo $mail_sent ? "Mail sent" : "Mail failed"; 
?> 

중요 :

또한, Gmail의 SMTP 액세스를 활성화해야합니다 안전하지 않은 것을 허용해야합니다. 클라이언트 :

https://www.google.com/settings/security/lesssecureapps https://support.google.com/mail/answer/75726

사용할 SMTP 포트가 방화벽에서 열려 있음을주의하십시오! 내가 썬더 버드와 함께 귀하의 dev 컴퓨터에서 연결 확인을 시도하는 것이 좋습니다. 그런 다음 클라이언트가 연결할 수 있는지를 알 수 있습니다.

14/12/03 12:19:32 ** --- MESSAGE BEGIN --- 
14/12/03 12:19:32 ** To: *****@example.com 
14/12/03 12:19:32 ** Subject: Test email 
14/12/03 12:19:32 ** From: ******@gmail.com 
14/12/03 12:19:32 ** Reply-To: ******@gmail.com 
14/12/03 12:19:32 ** 
14/12/03 12:19:32 ** Hello World! 
14/12/03 12:19:32 ** 
14/12/03 12:19:32 ** This is my first mail. 
14/12/03 12:19:32 ** --- MESSAGE END --- 
14/12/03 12:19:34 ** Connecting to smtp.gmail.com:465 
14/12/03 12:19:34 ** Connected. 
14/12/03 12:19:34 << 220 mx.google.com ESMTP pl1sm22468617wic.16 - gsmtp<EOL> 
14/12/03 12:19:34 >> EHLO vm-test-03.devnet.local<EOL> 
14/12/03 12:19:35 << 250-mx.google.com at your service, [xxx.xxx.xxx.xxx]<EOL>250-SIZE 35882577<EOL>250-8BITMIME<EOL>250-AUTH LOGIN PLAIN XOAUTH XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER<EOL>250-ENHANCEDSTATUSCODES<EOL>250-PIPELINING<EOL>250-CHUNKING<EOL>250 SMTPUTF8<EOL> 
14/12/03 12:19:35 ** Authenticating as ****@gmail.com 
14/12/03 12:19:35 >> AUTH LOGIN<EOL> 
14/12/03 12:19:35 << 235 2.7.0 Accepted<EOL> 
14/12/03 12:19:35 >> MAIL FROM: <*****@gmail.com><EOL> 
14/12/03 12:19:35 << 250 2.1.0 OK pl1sm22468617wic.16 - gsmtp<EOL> 
14/12/03 12:19:35 >> RCPT TO: <[email protected]><EOL> 
14/12/03 12:19:35 << 250 2.1.5 OK pl1sm22468617wic.16 - gsmtp<EOL> 
14/12/03 12:19:35 >> DATA<EOL> 
14/12/03 12:19:35 << 354 Go ahead pl1sm22468617wic.16 - gsmtp<EOL> 
14/12/03 12:19:35 >> Date: Wed, 3 Dec 2014 12:19:35 -0800<EOL> 
14/12/03 12:19:35 >> To: [email protected]<EOL> 
14/12/03 12:19:35 >> Subject: Test email<EOL> 
14/12/03 12:19:35 >> From: *****@gmail.com<EOL> 
14/12/03 12:19:35 >> Reply-To: *****@gmail.com<EOL> 
14/12/03 12:19:35 >> <EOL> 
14/12/03 12:19:35 >> Hello World!<EOL> 
14/12/03 12:19:35 >> <EOL> 
14/12/03 12:19:35 >> This is my first mail.<EOL> 
14/12/03 12:19:35 >> .<EOL> 
14/12/03 12:19:36 << 250 2.0.0 OK 1417637977 pl1sm22468617wic.16 - gsmtp<EOL> 
14/12/03 12:19:36 >> QUIT<EOL> 
14/12/03 12:19:36 << 221 2.0.0 closing connection pl1sm22468617wic.16 - gsmtp<EOL> 
14/12/03 12:19:36 ** Disconnecting from smtp.gmail.com:465 
14/12/03 12:19:36 ** Disconnected. 
14/12/03 12:19:36 ** Disconnected. 
+0

v3.2.1 – MukulAgr

+1

을 사용하고 있습니다. 작동하지 않습니다 : ( – MukulAgr

+0

내 대답을 업데이트했습니다. 나는 XAMPP 자신이 테스트 환경에서 테스트 ... 그리고 FYI V3.2.1 XAMPP 자체가 아닌 XAMPP 콘솔의 버전입니다 :) – LucasF

관련 문제