[英]SMTP emails from PHPMailer not working now migrated to AWS
我有一個以前托管在 Godaddy 上的大型軟件,我使用以下代碼向客戶發送預約確認:
if ($systemToken == $token) {
if ($permission) { //if the user is an admin.
require 'PHPMailer-master/PHPMailerAutoload.php';
$mail = new PHPMailer;
//$mail->SMTPDebug = 3; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'localhost';
$mail->SMTPAuth = false;
$mail->SMTPAutoTLS = false;
$mail->Port = 25;
if($branding == 1 || $branding == '1'){
$new_username = 'info@XXX1.co.uk';
$new_password = 'X';
}
else
{
$new_username = 'info@XXX2.co.uk';
$new_password = 'X';
}
$mail->Username = $new_username; // SMTP username
$mail->Password = $new_password; // SMTP password
$mail->setFrom('info@XX.co.uk', 'Your Invoice');
$mail->addAddress($sendto); // Add a recipient
$mail->addAttachment($pdf); // Add attachments
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = $subject;
$mail->Body = "<html><body><p>Hi " . $fname . ",</p><p>We are pleased to confirm your appointment on " . $app . ".</p>
<p>Please reply to this email if you need to re-arrange your appointment, or have any questions or queries.</p>
</body></html>";
$mail->AltBody = '';
if (!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo '{"text":"Email sent to ' . $sendto . '"}';
}
} else {
echo '{"error":{"text":"Invalid Permissions"}}';
}
} else {
echo '{"error":{"text":"No access"}}';
}
由於流量激增,我已切換到 amazon web 服務專用服務器,我需要安裝或更改什么才能像在 Godaddy 上那樣發送電子郵件? 我知道 localhost 需要更改,但我不確定 go 最好用什么? 我可以使用任何托管包設置還是有更多的設置
首先,您使用的是舊版本的 PHPMailer,因此我建議您更新並查看使用 composer。
AWS 不是共享主機,因此不提供郵件服務器,但您可以非常輕松地安裝自己的服務器。 您通常需要的只是apt install postfix
和 select 它的“inte.net 站點”選項,這將與您現有的腳本一起使用。
但是,您隨后會遇到 AWS 問題; 他們不喜歡你發送 email,所以你會經常發現出站 SMTP 被阻止。 解決此問題的唯一真正方法是為他們的 SES 郵件服務付費。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.