Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自PHPMailer的SMTP电子邮件不工作,现在已迁移到AWS_Php_Amazon Web Services_Email_Phpmailer - Fatal编程技术网

来自PHPMailer的SMTP电子邮件不工作,现在已迁移到AWS

来自PHPMailer的SMTP电子邮件不工作,现在已迁移到AWS,php,amazon-web-services,email,phpmailer,Php,Amazon Web Services,Email,Phpmailer,我有一个以前在Godaddy上托管的大型软件,我使用以下代码向客户发送预约确认: if ($systemToken == $token) { if ($permission) { //if the user is an admin. require 'PHPMailer-master/PHPMailerAutoload.php'; $mail = new PHPMailer;

我有一个以前在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"}}';
        }
if($systemToken==$token){
如果($permission){//如果用户是管理员。
需要“PHPMailer master/phpmailerautoad.php”;
$mail=新的PHPMailer;
//$mail->SMTPDebug=3;//启用详细调试输出
$mail->isSMTP();//设置邮件程序以使用SMTP
$mail->Host='localhost';
$mail->SMTPAuth=false;
$mail->SMTPAutoTLS=false;
$mail->Port=25;
如果($branding==1 | |$branding==1'){
$new\u用户名=info@XXX1.co.uk';
$new_password='X';
}
其他的
{
$new\u用户名=info@XXX2.co.uk';
$new_password='X';
}
$mail->Username=$new\u Username;//SMTP用户名
$mail->Password=$new\u Password;//SMTP密码
$mail->setFrom('info@XX.co.uk“,”您的发票“);
$mail->addAddress($sendto);//添加收件人
$mail->addAttachment($pdf);//添加附件
$mail->isHTML(true);//将电子邮件格式设置为HTML
$mail->Subject=$Subject;
$mail->Body=“Hi”。$fname.”,

我们很高兴确认您在“$app”上的约会

如果您需要重新安排约会,或有任何问题或疑问,请回复此电子邮件

"; $mail->AltBody=''; 如果(!$mail->send()){ echo“无法发送消息”; 回显“邮件错误:”。$mail->ErrorInfo; }否则{ 回显“{”文本“:“电子邮件发送到“.$sendto.”“}”; } }否则{ 回显“{”错误“:{”文本“:“无效权限”}}”; } }否则{ 回显“{”错误“:{”文本“:“无访问权”}”; }

由于流量激增,我已经切换到amazon web services专用服务器,我需要安装或更改什么才能像在Godaddy上一样发送电子邮件?我知道localhost需要更改,但我不确定什么是最好的选择?我可以使用任何托管软件包设置吗?或者还有其他设置吗?首先,您使用的是旧版本的PHPMailer,因此我建议您进行更新,并查看如何使用composer

AWS不是共享主机,因此不提供邮件服务器,但您可以非常轻松地安装自己的邮件服务器。您通常只需安装postfix,并选择其“internet站点”选项,即可使用现有脚本

但是,您将遇到AWS的问题;他们不喜欢你发送电子邮件,所以你经常会发现出站SMTP被阻止。解决这一问题的唯一真正方法是为他们的SES邮件服务付费