2017-12-04 2 views
0

나는이 질문에 많은 질문을 받았으며 대부분을 읽었습니다.PHP 메일러가 포함 된 Gmail SMTP 오류

Gmail 메일 계정을 사용하여 PHP 메일러 및 WAMP 서버를 사용하여 PHP에서 이메일을 보내려 할 때이 오류가 발생합니다.

  1. 어제까지 아무런 문제없이 (약 3 개월 이후) 작동했습니다.
  2. 메일러 도우미 함수에서 코드를 변경하지 않았습니다.
  3. 내 wamp 설정에서 php-openssl.dll을 사용할 수 있습니다.
  4. ssl로 시도한 & 465, 연결하지 마십시오.
  5. 내 Google 설정에서 "덜 안전한 앱 허용"을 사용하도록 설정했습니다.
  6. gethostbyname()을 사용해 보았습니다. 작동하지 않습니다.
  7. 보안을 사용하지 않는 회사의 이메일 서버에서 작동합니다.

이것은 내 phpmailer 기능 코드입니다. 모든 설정이 데이터베이스에서 검색됩니다. 그것은 다중 사용자 응용 프로그램이므로.

// Email Settings 
    $from=$details->from; 
    $mailer=$details->mailer; 
    $subject=$details->subject; 

    $mail = new PHPMailer(true);        // Passing `true` enables exceptions 
    try { 
     //Server settings 
     $mail->SMTPDebug = $settings->debug;     // Enable verbose debug output 
     $mail->isSMTP();          // Set mailer to use SMTP 
     $mail->Host = $settings->host;   // Specify main and backup SMTP servers 
     $mail->SMTPAuth = true;         // Enable SMTP authentication 
     $mail->Username = $settings->login;      // SMTP username 
     $mail->Password = $pass;        // SMTP password 
     $mail->SMTPSecure = $settings->security;    // Enable TLS encryption, `ssl` also accepted 
     $mail->Port = $settings->port;       // TCP port to connect to 

     //From 
     $mail->setFrom($from, $mailer); 

     //Recipients 
     $mail->addAddress($details->to,$details->recipientName);  // Add a recipient   // Name is optional 
     $mail->addReplyTo($from, $mailer); 
     foreach($quote->cc as $cc) 
     { 
      $mail->addCC($cc); 
     } 
     //Attachments 
     foreach($quote->attachments as $file) 
     { 
      $mail->addAttachment($file); // Add attachments // Optional name 
     } 
     //Content 
     $mail->isHTML(true);         // Set email format to HTML 
     $mail->Subject = $subject; 
     $mail->Body = $message; 
     $mail->AltBody = 'Non-HTML Mail Clients Not Supported, Please View This email in a browser or get a HTML friendly Email Client.'; 
     $mail->send(); 
    } 
    catch (Exception $e) 
    { 
     $return=array(1,'Error: '.$mail->ErrorInfo); 
    } 
return $return; 
} 

내가지고있어 그 오류가 어떤 도움에 감사드립니다

2017-12-04 07:15:26 SERVER -&gt; CLIENT: 220 smtp.gmail.com ESMTP w9sm23070345pfk.16 - gsmtp<br> 
2017-12-04 07:15:26 CLIENT -&gt; SERVER: EHLO projects<br> 
2017-12-04 07:15:26 SERVER -&gt; CLIENT: 250-smtp.gmail.com at your service, [49.213.37.11]250-SIZE 35882577250-8BITMIME250-STARTTLS250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8<br> 
2017-12-04 07:15:26 CLIENT -&gt; SERVER: STARTTLS<br> 
2017-12-04 07:15:27 SERVER -&gt; CLIENT: 220 2.0.0 Ready to start TLS<br> 
SMTP Error: Could not connect to SMTP host.<br> 
2017-12-04 07:15:27 CLIENT -&gt; SERVER: QUIT<br> 
2017-12-04 07:15:27 <br> 
2017-12-04 07:15:27 <br> 
SMTP Error: Could not connect to SMTP host.<br> 
[1,"Error: SMTP Error: Could not connect to SMTP host."] 

입니다.

추신 : smtp.gmail.com : 내가 사용하는 설정은

  1. 호스트입니다.
  2. 사용자 이름 및 비밀번호 : 확인한 후 gmail 웹에 내 계정에 로그인 할 수 있습니다.
  3. 보안 : TSL
  4. 포트 : 그것의 내 코드 만약 내가 의심 587

. 내 코드라면 coz, 그러면 Gmail과 같이 정교하지 않은 내 조직의 이메일 서버에서 작업하지 않을 것입니다.

답변

1

나는 당신의 질문과 같은 오류를보고, 내가가 내 문제를 해결 : 아파치에서 extentsion의 SSL을 사용

  1. 업데이트하는 코드 추가
  2. PHPMailer

  3. 에서 최신 코드 :

    $mail->SMTPOptions = array(
    
    'ssl' => array(
        'verify_peer' => false, 
        'verify_peer_name' => false, 
        'allow_self_signed' => true 
    ) 
    

    );

그리고 작품입니다!

+0

1 및 2 완료. 3 : phpmailer 보안 옵션에서 SSL을 사용해야 만 구현할 수 있습니까? 아니면 TSL에서도 작동합니까? –

+0

이것은 TSL –

+0

ok와 함께 작동합니다 ... 알려 주시면 감사하겠습니다. :) –