簡體   English   中英

來自 PHPMailer 的 SMTP 封電子郵件現已遷移至 AWS

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM