wampserver 2.4에서 실행중인 php를 통해 Gmail에 액세스하려고합니다. 단순함을 위해, 이것은 로컬 호스트에서 온 것입니다 (실제 응용 프로그램은 훨씬 더 복잡합니다).wamp 서버 2.4의 PHP에서 imap_pop 사용
몇 가지 표준의 예에 따라, 나는 둘 수 있어요 Gmail을 통해 이메일 (POP 또는 IMAP를 통해) 수신 (SMTP를 통해) 전송 -하지만 "보안 수준이 낮은 앱은"Gmail의의 기능이 (https://www.google.com/settings/security/lesssecureapps)를 사용하는 경우에만 . 물론, 먼저 메일 설정 페이지에서 팝업 및/또는 imap을 활성화해야합니다. (https://mail.google.com/mail/u/0/#settings/fwdandpop)
이 작업이 진행되는 동안 저는 "안전한 기술"(SSL 및 TLS)을 사용하고 싶습니다. 어떤 아이디어?
다음 코드가 사용됩니다
이메일을 검색하십시오. wampserver 팝업 메뉴에서 phpSettings 옵션 -
$ato="{pop.gmail.com:995/pop3/ssl/novalidate-cert}INBOX";
$auser="[email protected]";
$apwd="mypwd";
$mbox = imap_open($ato,$auser,$apwd,NULL,1) or die("can't connect: " . print_r(imap_errors())); // just do one login
$stuff=imap_check($mbox); // get and print basic information (such as # of emails)
var_dump($stuff);
과 일 다음, 나는 먼저 PHP를 사용합니다 (php_openssl의 PHP 설정을 사용했다는 것을 참고합니다 (PEAR 패키지를 사용) 이메일를 전송). 다양한 게시물을 바탕으로
require_once "Mail.php";
$from = '[email protected]';
$to = '[email protected] ';
$subject = 'Hi!';
$body = "Hi,\n\nHow are you?";
$headers = array(
'From' => $from,
'To' => $to,
'Subject' => $subject
);
$smtp = Mail::factory('smtp', array(
'host' => 'ssl://smtp.gmail.com',
'port' => '465',
'auth' => true,
'username' => '[email protected]',
'password' => 'mypwd'
));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo('<p>' . $mail->getMessage() . '</p>');
} else {
echo('<p>Message successfully sent!</p>');
}
, 나는 아파치 확장에 따라 ssl_module 및 imagemap_module 수 있도록 노력했다; php 설정 아래의 php_sockets. 그들은 아무런 효과가 없었다. php를 구성하는 것이 imap-ssl로 문제가 될 수 있음을 읽었지만, 어떻게해야 할 지 잘 모릅니다. 여기
위의 팝업 예제를 사용할 때 얻을 적절한 응답이다 (사용자 이름 및 암호 사용) - Gmail의 "보안 수준이 낮은 앱에 대한 액세스가"사용 가능 "object(stdClass)[1]
public 'Date' => string 'Thu, 22 Jan 2015 01:06:37 -0500 (Eastern Standard Time)' (length=55)
public 'Driver' => string 'pop3' (length=4)
public 'Mailbox' => string '{gmail-pop.l.google.com:995/pop3/notls/ssl/novalidate-cert/user="[email protected]"}INBOX' (length=99)
public 'Nmsgs' => int 153
public 'Recent' => int 1
을 내가 사용하지 않는 경우 {imap.gmail.com:993/imap/imap/ssl}INBOX ":"IMAP $ 아토을 = 사용 BTW
Array ([0] => [AUTH] Web login required: https://support.google.com/mail/bin/answer.py?answer=78754 [1] => Too many login failures) can't connect: 1
"; 보안 수준이 낮은 앱 수율 :
는Array ([0] => Can't open mailbox {imap.gmail.com:993/imap/imap/ssl}INBOX: invalid remote specification) can't connect: 1
감사합니다. 이제 어려운 부분 : 이것을 imap_open ... 시퀀스로 코딩하는 법. Google에는 oauth 관련 콘텐츠를 생성하는 PHP 라이브러리가 있습니다. 그러나 그것을 사용하는 방법에 관한 문서와 예제는 분명하지 않습니다. 볼 곳에 대한 제안. –