正在迁移电子邮件服务器,但网站仍发送到旧邮件服务器

问题描述 投票:0回答:1

首先有几件事。我管理我朋友的小杂草店,位于 onbud.ca,我的小型网络托管网站是 pihosting.ca。

旧的电子邮件服务器是209.15.158.18,但我刚刚设置的新邮件服务器是209.15.158.21。所以我试图从 mail.pihosting.ca 迁移到 mail1.pihosting.ca。

我做了一些服务器维护,并将邮件服务器从网络服务器上移走了。一切似乎都运转良好。我将登录新的电子邮件服务器,向我的 gmail 帐户发送一封电子邮件并回复,该电子邮件将被发送回正确的 mx 服务器,209.15.158.21。

但是当我访问网站并发出虚拟订单来测试电子邮件时,会发送 3 封电子邮件。一份给客户,一份给网站所有者和[电子邮件受保护]。当此订单完成后,它会从旧邮件服务器 209.15.158.18 发送电子邮件,而当人们回复这些电子邮件时,新服务器将不会收到这些回复。

我还从运行 Web 服务器和旧邮件服务器的服务器进行 ping 操作,这就是结果。

root@mail:~# ping mail1.pihosting.ca
PING mail1.pihosting.ca (209.15.158.21) 56(84) bytes of data.
64 bytes from mail1.pihosting.ca (209.15.158.21): icmp_seq=1 ttl=64 time=0.610 m                                                                                                                                                             s
64 bytes from mail1.pihosting.ca (209.15.158.21): icmp_seq=2 ttl=64 time=0.544 m                                                                                                                                                             s
64 bytes from mail1.pihosting.ca (209.15.158.21): icmp_seq=3 ttl=64 time=0.539 m                                                                                                                                                             s
64 bytes from mail1.pihosting.ca (209.15.158.21): icmp_seq=4 ttl=64 time=0.497 m                                                                                                                                                             s
^Z
[1]+  Stopped                 ping mail1.pihosting.ca

这是我的 phpmailer 脚本。

<?PHP
//include('include/config.php');
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
use PHPMailer\PHPMailer\PHPMailer;
//use PHPMailer\PHPMailer\Exception;
require 'vendor/phpmailer/src/Exception.php';
require 'vendor/phpmailer/src/PHPMailer.php';
require 'vendor/phpmailer/src/SMTP.php';
 
$mail = new PHPMailer(true);
$message = 'This is a test';
try {
    $mail->isSMTP();                                            // Send using SMTP
    $mail->Host       = 'mail1.pihosting.ca';                    // Set the SMTP server to send through
    $mail->SMTPAuth   = true;                                   // Enable SMTP authentication
    $mail->Username   = '[email protected]';                     // SMTP username
    $mail->Password   = 'email-pass';                               // SMTP password
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;         // Enable TLS encryption;
    $mail->Port       = 587;                                    // TCP port to connect to, use 465 for
    $mail->setFrom('[email protected]','OnBud');
    $mail->addAddress('********@gmail.com');
    $mail->addReplyTo('[email protected]','OnBud');
    $mail->isHTML(true);                                  // Set email format to HTML
    $mail->Subject = 'This is a test';
    $mail->Body    = $message;
    $mail->AltBody = strip_tags($message);
    $mail->AddCustomHeader("List-Unsubscribe: <mailto:[email protected]?subject=Unsubscribe>,<http://onbud.ca/unsubscribe.php>");
    $mail->DKIM_domain = 'onbud.ca';
    $mail->DKIM_private = "lock/default.private";
    $mail->DKIM_selector = 'default';
    $mail->DKIM_passphrase = "";
    $mail->DKIM_identity = $mail->From;
    $mail->send();
    echo 'Success';
} catch (Exception $e) {
    echo 'failed to send';
}
?>

这也是为 onbud.ca 存储的 DNS 记录

                                IN  MX  0   mail
mail            86400           IN  A   209.15.158.21
www             86400           IN  A   209.15.158.18
_dmarc          86400           IN  TXT "v=DMARC1; p=none; pct=100; fo=1; rua=mailto:[email protected]"
@               86400           IN  TXT "v=spf1 a mx ip4:209.15.158.18 ip4:209.15.158.21 ~all"

以及 pihosting.ca

                                IN  MX  1   mail
                                IN  MX  0   mail1
mail            86400           IN  A   209.15.158.18
mail1           86400           IN  A   209.15.158.21
www         86400           IN  A   209.15.158.18
_dmarc          86400           IN  TXT "v=DMARC1; p=none; pct=100; fo=1; rua=mailto:[email protected]"
@           86400           IN  TXT "v=spf1 a mx ip4:209.15.158.18 ip4:209.15.158.21 ~all"

我如何能够使用新服务器上的凭据向客户端发送电子邮件,而不依赖于旧邮件服务器(也是 Web 服务器)

php email dns phpmailer
1个回答
0
投票

意识到启用 isSMTP() 后会出错。这让我怀疑我的 SMTP 凭据不正确。它是。我修好了,发送了电子邮件,现在可以使用了。

© www.soinside.com 2019 - 2024. All rights reserved.