간단한 가이드: PHPMailer를 사용하여 테스트 이메일 보내기
P粉344355715
P粉344355715 2023-08-26 21:06:15
0
1
664
<p>저는 Debian/Bullseye에서 로컬 Apache2 서버를 실행하고 있습니다. PHPMailer를 작동시키려고 노력했지만 실패했습니다. PHPMailer를 설치하는 방법에는 두 가지가 있는 것 같습니다. 첫 번째는 제가 시도한 첫 번째 방법인 작곡가를 사용하는 것입니다. 사이트 루트에 autoload.php 파일과 기타 몇 가지 파일이 포함된 공급업체 폴더를 생성합니다. 파일에는 다음 내용이 포함되어 있습니다. </p> <pre class="brush:php;toolbar:false;"><?php // autoload.php @Composer에 의해 생성됨 require_once __DIR__ '/composer/autoload_real.php'; return ComposerAutoloaderInitd359baac21f520c04e608f4eed750560::getLoader();</pre> <p>완료되지 않은 것 같습니다(닫는 태그 없음). 어쨌든 "test.php" 예제를 작동시킬 수 없습니다. </p> <p>또 다른 방법은 gethub 웹사이트에서 .zip 파일을 다운로드하여 사이트의 루트 디렉터리에 압축을 푸는 것입니다. 이름을 바꾼 후 PHPMailer 폴더가 생겼습니다. "mailer.php" 예제를 사용해도 아무런 효과가 없습니다. </p> <p>두 경우 모두 도메인의 실제 계정 정보(보내는 이메일, 로그인 비밀번호, smtp 서버 이름, 호스트의 smtp 보안, 포트 설정)를 사용하도록 smtp 정보를 수정했지만 거부에도 답변이 없습니다. 이메일이 수신되었습니다. 아무 일도하지. 내가 보는 것은 빈 웹 페이지뿐입니다. </p> <p> 이전에 사용했던 PHP 스크립트가 여전히 작동하기 때문에 PHP가 실행 중입니다(내 테스트 사이트에서 - 실제 사이트에서는 이제 smtp 사용을 요구하고 PEAR 모듈을 설치할 수 없습니다).</p> <p>다음은 제가 사용하고 있는 mailer.php 스크립트입니다. 일부 세부정보는 숨겨져 있습니다. </p> <pre class="brush:php;toolbar:false;"><?php //PHPMailer 클래스를 전역 네임스페이스로 가져옵니다. //함수 내부가 아닌 스크립트 상단에 있어야 합니다. PHPMailerPHPMailerPHPMailer를 사용하세요. PHPMailerPHPMailerSMTP를 사용하십시오. PHPMailerPHPMailerException을 사용하십시오. 'PHPMailer/src/Exception.php'가 필요합니다. 'PHPMailer/src/PHPMailer.php'가 필요합니다. 'PHPMailer/src/SMTP.php'가 필요합니다. //인스턴스를 생성합니다. 예외를 활성화하려면 'true'를 전달합니다. $mail = 새로운 PHPMailer(true); 노력하다 { //서버 설정 $mail->SMTPDebug = SMTP::DEBUG_SERVER; //자세한 디버깅 출력 활성화; $mail->isSMTP() //SMTP를 사용하여 보내기 $mail->Host = 'mail.<domain>.ca' //통과할 SMTP 서버를 설정합니다. $mail->SMTPAuth = true; //SMTP 인증 활성화; $mail->사용자 이름 = 'mail@<도메인>.ca' //SMTP 사용자 이름 $mail->Password = '<비밀>' //SMTP 비밀번호 $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS //암시적 TLS 암호화 활성화; $mail->Port = 465; //연결할 TCP 포트, 'SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS'가 설정된 경우 587을 사용하세요. //받는 사람 $mail->setFrom('mail@<domain>.ca', '나로부터'); $mail->addAddress('gary@<domain>.ca', '나에게') //수신자 추가 // $mail->addAddress('Recipient@emailaddress.com') //이름은 선택사항입니다. // $mail->addReplyTo('yourname@domain.com', '귀하의 이름'); // $mail->addCC('cc@example.com'); // $mail->addBCC('bcc@example.com'); //첨부파일(선택사항) // $mail->addAttachment('/var/tmp/file.tar.gz') //첨부파일 추가 // $mail->addAttachment('/tmp/image.jpg', 'new.jpg') //선택적 이름 //콘텐츠 $mail->isHTML(true); //이메일 형식을 HTML로 설정 $mail->Subject = '제목은 여기입니다'; $mail->Body = '굵게 표시된 HTML 메시지 본문입니다!'; $mail->AltBody = 'HTML이 아닌 메일 클라이언트의 일반 텍스트 본문입니다.'; $mail->send(); echo '메시지가 전송되었습니다'; } 잡기 (예외 $e) { echo "메일러 오류: {$mail->ErrorInfo}";를 보낼 수 없습니다. } ?></pre> <p>TLS 라인은 호스팅 회사에서 가져온 것이므로 정확하다고 가정합니다. </p> <p>테스트에 필요하지 않은 옵션을 주석 처리했지만 여전히 작동하지 않습니다. 누구든지 내가 뭘 잘못하고 있는지 알아낼 수 있나요? </p> <p>감사합니다. </p>
P粉344355715
P粉344355715

모든 응답(1)
P粉709644700

알겠습니다. 알겠습니다. 호스팅 회사는 테스트 코드를 제공하며 해당 예제에서는 smtp.domain.com을 사용합니다. 실제로 smtp 서버는 smtp가 아닌 메일입니다. 존재하지 않는 서버에 직면하면 코드 실행이 중지되는 것 같아요...

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿