[php] localhost에서 메일을 보내도록 XAMPP를 구성하는 방법은 무엇입니까?

localhost에서 메일을 보내려고합니다. 하지만 localhost에서 메일을 보낼 수 없으므로 localhost에서 메일을 보내도록 xampp를 재구성하는 방법을 알려주십시오.



답변

sendmail package를 사용하여 localhost에서 메일을 보낼 수 있으며 sendmail 패키지는 XAMPP에 내장되어 있습니다. 따라서 XAMPP를 사용하는 경우 localhost에서 쉽게 메일을 보낼 수 있습니다.

예를 들어, 당신은 구성 할 수 있습니다 C:\xampp\php\php.inic:\xampp\sendmail\sendmail.iniGmail에 메일을 보낼 수 있습니다.

에서 C:\xampp\php\php.ini발견 extension=php_openssl.dllSSL은 로컬 호스트에 대한 Gmail을 위해 일하기 위해 그 라인의 시작 부분에서 세미콜론을 제거합니다.

php.ini 파일에서 찾기 [mail function]및 변경

SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = my-gmail-id@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

이제 엽니 다 C:\xampp\sendmail\sendmail.ini. sendmail.ini의 모든 기존 코드를 다음 코드로 바꿉니다.

[sendmail]

smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=my-gmail-id@gmail.com
auth_password=my-gmail-password
force_sender=my-gmail-id@gmail.com

이제 끝났습니다 !! 메일 기능으로 PHP 파일을 만들고 localhost에서 메일을 보냅니다.

추신 : 위의 코드에서 my-gmail-idmy-gmail-password 를 바꾸는 것을 잊지 마십시오 . 또한 위에서 설정을 복사 한 경우 중복 키를 제거하는 것을 잊지 마십시오. 예를 들어 php.ini 파일에 다른 sendmail_path 가있는 경우 주석 다음 줄 :sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"

또한 XAMMP 제어판을 사용하여 서버를 다시 시작해야 변경 내용이 적용됩니다.

Gmail의 경우 보안 수준이 낮은 앱에서 액세스 할 수 있도록 https://support.google.com/accounts/answer/6010255 를 확인 하세요 .

localhost에서 Gmail을 통해 Linux에서 sendmail 패키지로 이메일을 보내려면 php 형식 localhost를 사용하여 PHP + Ubuntu 이메일 보내기 를 확인하십시오 .


답변

테스트 목적으로 XAMPP v3.2.1에서 XAMPP가 XAMPP / mailoutput으로 보내는 이메일을 볼 수 있습니다. Windows 8의 경우에는 추가 구성이 필요하지 않았으며 전자 메일 테스트를위한 간단한 솔루션이었습니다.


답변

localhost 또는 로컬 서버에서 이메일을 보내는 것이 매우 간단합니다.

참고 : Xampp가 설치된 Windows 7 64 비트에서 테스트 메일 서버 소프트웨어를 사용하고 있습니다.

테스트 메일 서버 도구를 다운로드하고 해당 웹 사이트의 테스트 메일 서버 도구 에 제공된 지침에 따라 설치하십시오.

이제 php.ini파일에서 두 줄만 변경하면 됩니다.

  1. [mail function]이전의 세미콜론 찾기 및 제거;smtp = localhost
  2. 세미콜론을 앞에 두십시오 sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"

다른 사항을 변경할 필요는 없지만을 확인하는 것보다 이메일을받지 못하면 SMTP port포트 번호가 같아야합니다.

위의 방법은 Xampp 소프트웨어에서 제공하는 기본 설정에 대한 것입니다.


답변

인터넷없이 PC에서 메일 발송을 테스트 할 수 있습니다

이 간단한 응용 프로그램을 Papercut 을 사용 하여 메일 발송을 테스트 해야합니다 . 아무것도 구성 할 필요가 없습니다.

그냥 실행하고 테스트 메일 보내기를 시도하십시오.

test_sendmail.php

<?php
$to = "somebody@example.com";
$subject = "My subject";
$txt = "Hello world!";
$headers = "From: webmaster@example.com" . "\r\n" .
"CC: somebodyelse@example.com";

mail($to,$subject,$txt,$headers);
?>

그리고 당신은 이것을 볼 것입니다 :

여기에 이미지 설명을 입력하십시오

좋은 하루 되시길 바랍니다. 더 많은 튜토리얼 Piseth Sok를 위해 Youtube 에서 나를 찾을 수 있습니다

격려!


답변

서버에서 SMTP 를 구성 해야합니다. Google의 G Suite SMTP 를 무료로 사용할 수 있습니다 .

<?php

$mail = new PHPMailer(true);

// Send mail using Gmail
if($send_using_gmail){
    $mail->IsSMTP(); // telling the class to use SMTP
    $mail->SMTPAuth = true; // enable SMTP authentication
    $mail->SMTPSecure = "ssl"; // sets the prefix to the servier
    $mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
    $mail->Port = 465; // set the SMTP port for the GMAIL server
    $mail->Username = "your-gmail-account@gmail.com"; // GMAIL username
    $mail->Password = "your-gmail-password"; // GMAIL password
}

// Typical mail data
$mail->AddAddress($email, $name);
$mail->SetFrom($email_from, $name_from);
$mail->Subject = "My Subject";
$mail->Body = "Mail contents";

try{
    $mail->Send();
    echo "Success!";
} catch(Exception $e){
    // Something went bad
    echo "Fail :(";
}

?>

자세한 내용은 PHPMailer 여기를 참조 하십시오 .


답변

내 개인적인 경험에서와 마찬가지로 Vikas Dwivedi의 답변과 매우 유사한 것이 잘 작동한다는 것을 알았습니다.

1 단계 (php.ini 파일)

에있는 php.ini 파일에서 xampp\php\php.ini. 다음과 같이 설정을 변경하십시오.

 extension=php_openssl.dll
 [mail function]
 sendmail_path =":\xampp7\sendmail\sendmail.exe -t"
 mail.add_x_header=On

다른 변수 mail funciton;앞에 두어 끄십시오 . 예 :;smtp_port=25

2 단계 (sendmail.ini 파일)

xampp \ sendmail \ semdmail.ini에있는 sendmail.ini에서 다음으로 변경하십시오.

 smtp_server=smtp.gmail.com
 smtp_port=465
 smtp_ssl=auto
 auth_username=address@gmail.com
 auth_password=YourPassword

3 단계 (코드)

PHP 파일을 작성하고 다음을 사용하십시오.

 <?php
    mail($to, "subject", "body", "From: ".$from);
 ?>

주의

  • php.ini를 다시 불러 오려면 아파치를 다시 시작해야합니다.
  • https://myaccount.google.com/u/1/security 에서 Google의 덜 안전한 앱 액세스를 활성화해야합니다.
  • 관리자 권한으로 Xampp를 실행하는 것이 도움이 될 수 있습니다.

답변

이 코드는 로컬 호스트 XAMPP 및 Gmail 계정의 메일에 사용됩니다. 이 코드는 매우 쉽고 나를 위해 노력하고 있습니다.

아래 php.ini 파일 변경

SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = your@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
extension=php_openssl.dll 

sendmail.ini 파일 변경 아래

smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=yourmail@gmail.com
auth_password=your-gmail-password
force_sender=yourmail@gmail.com  

이메일을 보내려면 PHP 파일에 사랑 코드를 작성하십시오

<?php
    $to = "tomail@gmail.com";
    $subject = "Test Mail";
    $headers = "From: from_mail@gmail.com\r\n";
    $headers .= "Reply-To: replytomail@gmail.com\r\n";
    $headers .= "CC: theassassin.edu@gmail.com\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    $message = '<html><body>';
    $message .= '<img src="//css-tricks.com/examples/WebsiteChangeRequestForm/images/wcrf-header.png" alt="Website Change Request" />';
    $message .= '<table rules="all" style="border-color: #666;" cellpadding="10">';
    $message .= "<tr style='background: #eee;'><td><strong>Name:</strong> </td><td>Details</td></tr>";
    $message .= "<tr><td><strong>Email:</strong> </td><td>Details</td></tr>";
    $message .= "<tr><td><strong>Type of Change:</strong> </td><td>Details</td></tr>";
    $message .= "<tr><td><strong>Urgency:</strong> </td><td>Details</td></tr>";
    $message .= "<tr><td><strong>URL To Change (main):</strong> </td><td>Details</td></tr>";
    $addURLS = 'google.com';
    if (($addURLS) != '') {
        $message .= "<tr><td><strong>URL To Change (additional):</strong> </td><td>" . $addURLS . "</td></tr>";
    }
    $curText = 'dummy text';
    if (($curText) != '') {
        $message .= "<tr><td><strong>CURRENT Content:</strong> </td><td>" . $curText . "</td></tr>";
    }
    $message .= "<tr><td><strong>NEW Content:</strong> </td><td>New Text</td></tr>";
    $message .= "</table>";
    $message .= "</body></html>";

    if(mail($to,$subject,$message,$headers))
    {
        echo "Mail Send Sucuceed";
    }
    else{
        echo "Mail Send Failed";
    }
?>