PHPMail을 사용하여 이메일을 보내는 PHP 스크립트를 설정하고 있습니다. "보낸 사람"주소는 Amazon의 콘솔에서 이미 확인되었으며 IAM 사용자 및 SMTP 자격 증명을 만들었습니다. 그것들을 생성 할 때 아마존은 포트 25, 465 또는 587을 사용하라고 지시합니다. Here's 아마존의 문서에있는 PHP 예제는 PHPMail을 사용하지 않지만 아이디어는 동일해야합니다. 그런 그 스크립트가 작동하지 않습니다Amazon SES SMTP가 포트 443에서만 작동하는 이유는 무엇입니까?
$mail = new PHPMailer;
$mail->SMTPDebug = 3; // Enable verbose debug output
$mail->Timeout = 20;
$mail->CharSet = 'UTF-8';
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'ssl://email-smtp.us-east-1.amazonaws.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'my_username'; // SMTP username
$mail->Password = 'my_password'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
$mail->setFrom('[email protected]', 'My email name');
$mail->addAddress('[email protected]', 'Test'); // Add a recipient
$mail->addReplyTo('[email protected]', 'My email name');
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Amazon SES SMTP test with PHPMailer';
$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.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
, 나는 연결 시간 제한 오류 :
이
내 스크립트입니다. 그러나 포트를 443으로 변경하면 제대로 작동합니다. 왜 그런가요? 아마존에 의해 나열된 포트가 아니므로 지금은 작동하지만 향후 다른 문제가 발생할 수도 있음을 걱정합니다. 내가 여기서 뭔가를 놓치고 있니? 그런데 포트 465는 작동하지 않습니다.편집 그냥 설명을 위해, 나는 그러나 왜 그들이 제안 포트 작동하지 않습니다, 이것이 내가 언급 같은 포트 443를 사용하여 작동 실현? 그게 내가 이해하려고하는 것입니다. 이 스크립트에 빠진 내용이 있습니까? 또한 "ssl : //"(예제에서 호스트가 어떻게 표시되는지) 및 제안 된 포트를 사용하여 호스트를 사전 수정하지 않고도 테스트 해 보았습니다.
하하하'https : // email-smtp.us-east-1.amazonaws.com'는 실제로'220 email-smtp.amazonaws.com ESMTP SimpleEmailService'에 응답합니다. 진지하게. 그건 이해가되지 않지만 포트 443에서 TLS 래퍼를 사용하여 SMTP를 말하고있는 것 같습니다. 그래도 맞습니다 - ** 잘못된 것입니다 **. 명령 프롬프트에서,'telnet email-smtp.us-east-1.amazonaws.com 587'. SMTP 배너가 있습니까? 그렇지 않은 경우, NAT 게이트웨이/인스턴스의 보안 그룹에서 뭔가 차단하고있는 것입니다. –