복붙노트

GMAIL 메일 서버를 사용하여 PHP로 XAMPP를 실행하는 localhost에서 전자 메일 보내기

PHP

GMAIL 메일 서버를 사용하여 PHP로 XAMPP를 실행하는 localhost에서 전자 메일 보내기

localhost에서 php mail () 함수를 사용하여 나의 yahoo 전자 메일 계정으로 전자 메일을 보내려고 할 때 전자 메일을 성공적으로 보냈지만 전자 메일을받지 못했습니다. 나는 이메일을 보내기 위해 많은 것을 읽었으며 '간단한 방법'이라고 불렀지 만 그 결과는 실망스럽고 그들 중 누구도 나를 위해 일하지 않는다. 아래는 코드, 구성 및 오류 메시지입니다. 누군가가 이것으로 나를 계몽 할 수 있습니까? 감사.

PHP 코드

<?php
$to      = 'myemail@yahoo.com';
$subject = 'Fake sendmail test';
$message = 'If we can read this, it means that our fake Sendmail setup works!';
$headers = 'From: myemail@egmail.com' . "\r\n" .
           'Reply-To: myemail@gmail.com' . "\r\n" .
           'X-Mailer: PHP/' . phpversion();

if(mail($to, $subject, $message, $headers)) {
    echo 'Email sent successfully!';
} else {
    die('Failure: Email was not sent!');
}
?>

php.ini 설정 (Gmail 메일 서버를 사용하고 있습니다)

sendmail.ini의 구성

포트 587을 사용하는 sendmail 오류 로그의 오류 메시지

해결법

  1. ==============================

    1.나에게 대답을주는 링크는 다음과 같다.

    나에게 대답을주는 링크는 다음과 같다.

    (우리가 실제로 sendmail을 사용하고 있기 때문에 "Unix only"비트를 무시하십시오)

    2 단계 인증으로 보호되는 Gmail 계정에 액세스하려면 애플리케이션 비밀번호를 만들어야합니다. (출처)

  2. ==============================

    2.php.ini 파일에서 주석 처리를 해제하십시오.

    php.ini 파일에서 주석 처리를 해제하십시오.

    sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
    ;sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
    

    및 sendmail.ini

    smtp_server=smtp.gmail.com
    smtp_port=465
    error_logfile=error.log
    debug_logfile=debug.log
    auth_username=your@gmail.com
    auth_password=yourpassword
    force_sender=your@gmail.com
    hostname=localhost
    

    이 하나를 구성 .. 그것은 작동합니다 ... 그것은 나를 위해 잘 작동합니다.

    감사.

  3. ==============================

    3.

    require_once "Mail.php";
    
    $from = '<from.gmail.com>';
    $to = '<to.yahoo.com>';
    $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' => 'johndoe@gmail.com',
            'password' => 'passwordxxx'
        ));
    
    $mail = $smtp->send($to, $headers, $body);
    
    if (PEAR::isError($mail)) {
        echo('<p>' . $mail->getMessage() . '</p>');
    } else {
        echo('<p>Message successfully sent!</p>');
    }
    
  4. ==============================

    4.

    [sendmail]
    
    smtp_server=smtp.gmail.com  
    smtp_port=25  
    error_logfile=error.log  
    debug_logfile=debug.log  
    auth_username=myemail@gmail.com 
    auth_password=gmailpassword  
    force_sender=myemail@gmail.com
    

    메일의 사용자 이름과 암호를 인증해야만 localhost에서 메일을 한 번만 성공적으로 보낼 수 있습니다.

  5. ==============================

    5.Gmail 계정의 두 번째 비밀번호를 생성하는 것을 잊지 마십시오. 코드에서이 새 암호를 사용합니다. 읽기 :

    Gmail 계정의 두 번째 비밀번호를 생성하는 것을 잊지 마십시오. 코드에서이 새 암호를 사용합니다. 읽기 :

    https://support.google.com/accounts/answer/185833

    '앱 비밀번호 생성 방법'섹션에서 '앱 비밀번호'를 클릭 한 다음 '앱 선택'에서 '메일'을 선택하고 기기를 선택하고 '생성'을 클릭하십시오. 두 번째 암호가 화면에 인쇄됩니다.

  6. ==============================

    6.가장 간단한 방법은 PHPMailer와 Gmail SMTP를 사용하는 것입니다. 구성은 다음과 같습니다.

    가장 간단한 방법은 PHPMailer와 Gmail SMTP를 사용하는 것입니다. 구성은 다음과 같습니다.

    require 'PHPMailer/PHPMailerAutoload.php';
    $mail = new PHPMailer;
    
    $mail->isSMTP();                            
    $mail->Host = 'smtp.gmail.com';            
    $mail->SMTPAuth = true;                     
    $mail->Username = 'Email Address';          
    $mail->Password = 'Email Account Password'; 
    $mail->SMTPSecure = 'tls';               
    $mail->Port = 587;                  
    

    예제 스크립트 및 전체 소스 코드는 여기에서 찾을 수 있습니다 - PHP에서 Localhost의 전자 메일을 보내는 방법

  7. ==============================

    7.스팸을 확인하십시오. mail () 함수는 메일을 스팸 메일로 보내는 경우가 있습니다.

    스팸을 확인하십시오. mail () 함수는 메일을 스팸 메일로 보내는 경우가 있습니다.

  8. ==============================

    8.이 시도. 항상 나를 위해 일합니다.

    이 시도. 항상 나를 위해 일합니다.

        $config['protocol']    = 'smtp';
        $config['smtp_host']    = 'ssl://smtp.gmail.com';
        $config['smtp_port']    = '465';                            //ssl
        $config['smtp_timeout'] = '7';
        $config['smtp_user']    = 'tandelromal09@gmail.com';
        $config['smtp_pass']    = 'pentium409';
        $config['charset']    = 'utf-8';
        $config['newline']    = "\r\n";
        $config['mailtype'] = 'html'; 
        $config['validation'] = TRUE;
    
  9. ==============================

    9.먼저 xampp / php에있는 php.ini 파일을

    먼저 xampp / php에있는 php.ini 파일을

    [메일 기능] ; XAMPP : 머큐리와 같은 SMTP 서버로 작업하고 싶다면 이것을 주석 처리하십시오. SMTP = smtp.gmail.com smtp_port = 25

    ; Win32 전용. ; http://php.net/sendmail-from sendmail_from = yourgmail@gmail.com sendmail_path = "\"C : \ xampp \ sendmail \ sendmail.exe \ "-t -i"

    sendmail과 sendmailpath에서 세미콜론을 제거하십시오.

    이 후 sendmail 폴더에있는 sendmail.ini 파일을 구성하면 xampp 폴더에서 검색 할 수 있습니다 그리고 이렇게해라.

    [메일을 보내다]

    smtp_server = smtp.gmail.com smtp_port = 587 smtp_ssl = 자동 default_domain = localhost error_logfile = error.log auth_username=yourgmailusername@gmail.com auth_password = yourgmailpassword pop3_server = pop3_username = pop3_password = force_sender=yourgmailusername@gmail.com force_recipient = hostname = localhost

    메일 기능 사용 처럼

    mail ( "yourgmailusername@gmail.com", "성공", "PHP를 사용하여 localhost에서 메일 보내기");

  10. from https://stackoverflow.com/questions/19132171/send-email-from-localhost-running-xammp-in-php-using-gmail-mail-server by cc-by-sa and MIT license