PHPMailer를 사용하여 기본 양식을 이메일 주소로 보내는데 다음 오류가 발생합니다.
SMTP 오류: 인증할 수 없습니다. 메시지를 보낼 수 없습니다. 메일러 오류: SMTP 오류: 인증할 수 없습니다. SMTP 서버 오류: VXNlcm5hbWU6
이상한 점은 다시 보내려고 하면 작동한다는 것입니다! 첫 번째 오류 이후 양식을 제출할 때마다 작동합니다. 하지만 몇 분 동안 그대로 두었다가 다시 시도하면 같은 오류가 다시 발생합니다.
때로는 정상적으로 작동하므로 사용자 이름과 비밀번호가 정확해야 합니다. 테스트하기 위해 다음과 같은 (매우 기본적인) 스크립트를 만들었고 동일한 결과를 얻었습니다.
<?php
require("phpmailer/class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtp.host.com";
$mail->SMTPAuth = true;
$mail->Username = "[email protected]";
$mail->Password = "password";
$mail->From = "[email protected]";
$mail->FromName = "From Name";
$mail->AddAddress("[email protected]");
$mail->AddReplyTo("[email protected]");
$mail->IsHTML(true);
$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 "Message could not be sent. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
echo "Message has been sent";
?>
나는 이것이 관련이 없다고 생각하지만 방금 호스팅을 Linux 공유 서버로 변경했습니다. 왜 이런 일이 발생하는지 아시나요?
감사해요!
***2012년 2월 6일 업데이트됨
몇 가지 테스트를 수행해 왔습니다. 결과:
IIS 서버에서 스크립트를 테스트했는데 제대로 작동했습니다. 이 오류는 Linux 서버에서만 발생하는 것 같습니다.
또한 Gmail 메일 서버를 사용하면 IIS와 Linux 모두에서 잘 작동합니다.
내 Linux 서버 구성에 문제가 있을 수 있나요?
***업데이트 2
Swiftmail을 사용해 보았는데 잘 작동합니다 :-) 그래서 PHPMailer를 버립니다.
답변1
문제가 서버인지 PHPMailer인지는 확실하지 않지만 Swiftmail을 사용해 보았는데 잘 작동했습니다. 나는 보통 왜 뭔가가 작동하지 않는지 알고 싶지만 문제를 찾을 수 없고 기술 서비스도 나만큼 손실됩니다. 그래서 저는 앞으로 제 프로젝트에서 Swiftmail을 계속 사용할 것입니다.
도와 주셔서 감사합니다!
답변2
다음과 같이 TLS 연결을 요청할 수 있습니다.
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls";
SO에 대한 이 질문/답변더 많은 정보가 있습니다. phpmailer 대신 php PEAR 라이브러리를 사용하라는 권장 사항을 포함합니다.