답변:
sendmail package를 사용하여 localhost에서 메일을 보낼 수 있으며 sendmail 패키지는 XAMPP에 내장되어 있습니다. 따라서 XAMPP를 사용하는 경우 localhost에서 쉽게 메일을 보낼 수 있습니다.
예를 들어, 당신은 구성 할 수 있습니다 C:\xampp\php\php.ini
및 c:\xampp\sendmail\sendmail.ini
Gmail에 메일을 보낼 수 있습니다.
에서 C:\xampp\php\php.ini
발견 extension=php_openssl.dll
SSL은 로컬 호스트에 대한 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-id 및 my-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의 경우에는 추가 구성이 필요하지 않았으며 전자 메일 테스트를위한 간단한 솔루션이었습니다.
c:\xampp\php\php.ini
찾아 [mail function]
주석을 해제하십시오 mailtodisk.exe
. 이 섹션의 다른 모든 행은 주석 처리 된 것을 제외하고 주석 처리하십시오 mail.add_x_header
.
sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
localhost 또는 로컬 서버에서 이메일을 보내는 것이 매우 간단합니다.
참고 : Xampp가 설치된 Windows 7 64 비트에서 테스트 메일 서버 소프트웨어를 사용하고 있습니다.
테스트 메일 서버 도구를 다운로드하고 해당 웹 사이트의 테스트 메일 서버 도구 에 제공된 지침에 따라 설치하십시오.
이제 php.ini
파일에서 두 줄만 변경하면 됩니다.
[mail function]
이전의 세미콜론 찾기 및 제거;smtp = localhost
sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"
다른 사항을 변경할 필요는 없지만을 확인하는 것보다 이메일을받지 못하면 SMTP port
포트 번호가 같아야합니다.
위의 방법은 Xampp 소프트웨어에서 제공하는 기본 설정에 대한 것입니다.
이 간단한 응용 프로그램을 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 :(";
}
?>
내 개인적인 경험에서와 마찬가지로 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);
?>
주의
이 코드는 로컬 호스트 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";
}
?>
이를 위해 SMTP
서버와 포트 를 정의해야 합니다. 라이브 호스트에서 메일을 보내는 것을 제외하고는 모두
이것은 이것에 관한 유용한 링크 입니다.
주의 : 포트는 사용하지 않아야합니다. 주의 사항 : 일부 응용 프로그램
Skype
은 기본 포트를 사용하므로 메일 전송을 방지합니다.
이 작업을 위해 한 시간 이상을 보냈습니다. 게시되지 않은 모든 제안에 대해 같은 문제를 겪는 모든 사람을 위해 : XAMPP 인터페이스에서 Apache를 다시 시작해야합니다! XAMPP를 다시 시작하면 작동하지 않습니다!
XAMPP Localhost에서 메일을 보내려면 여러 가지 방법을 시도했지만 XAMPP가 SSL 인증서를 가지고 있지 않기 때문에 Gmail 또는 유사한 SMTP 서비스 제공 업체가 내 이메일 요청을 차단했습니다.
그런 다음 로컬 smtp 서버에 MailHog를 사용했습니다. 실행해야합니다. localhost : 1025는 smtp 서버용이고 localhost : 8025는 메일 서버용이며 보낸 이메일을 확인할 수 있습니다.
여기 내 코드가 있습니다 :
require_once "src/PHPMailer.php";
require_once "src/SMTP.php";
require_once "src/Exception.php";
$mail = new PHPMailer\PHPMailer\PHPMailer();
//Server settings
$mail->SMTPDebug = 3; // Enable verbose debug output
$mail->isSMTP(); // Send using SMTP
$mail->Host = 'localhost'; // Set the SMTP server to send through
$mail->Port = 1025; // TCP port to connect to
// $mail->Username = ''; // SMTP username
// $mail->Password = ''; // SMTP password
// $mail->SMTPAuth = true; // Enable SMTP authentication
// $mail->SMTPSecure = 'tls'; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` also accepted
//Recipients
$mail->setFrom('testtoo@testto.com', 'Mailer');
$mail->addAddress('testtoo@webbamail.com', 'Joe User'); // Add a recipient
// Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Here is the subject';
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
모든 답변 외에도 sendmail.ini
파일에 주의 하십시오.
auth_password = 이것은-귀하의 -Gmail- 비밀번호가 아닙니다
새로운 Google 보안 문제로 인해 다음 단계에 따라이 용도로 애플리케이션 비밀번호를 만들어야합니다.