我使用以下PHP代碼發送電子郵件,但是當我發送電子郵件后登錄gmail帳戶時,已發送的電子郵件沒有記錄在gmail的已發送郵件部分。但是每次都成功發送電子郵件。我可以在我的筆記本電腦中使用 IsSMTP() 函式,在這種情況下,發送的郵件會被記錄,但在 GoDaddy VPS 中我不能使用 IsSMTP(),而是使用 IsMail()。
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\OAuth;
use PHPMailer\PHPMailer\POP3;
require '../PHPMailer/Exception.php';
require '../PHPMailer/PHPMailer.php';
require '../PHPMailer/SMTP.php';
require '../PHPMailer/OAuth.php';
require '../PHPMailer/POP3.php';
$mail = new PHPMailer(true);
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
$mail->IsMail();
//$mail->IsSMTP(); // if enabled instead of IsMail() an error "can not connect to SMTP" appears.
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'password';
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
//Recipients
$mail->setFrom('[email protected]', 'OFFICE');
$mail->addReplyTo('[email protected]', 'OFFICE');
$mail->addBCC("[email protected]", "OFFICE");//since sent mails are not saved
$mail->isHTML(true);
$mail->addAddress('[email protected]');
$mail->Subject = 'Subject';
$mail->Body = 'Hello';
$mail->AltBody = 'Hello';
$mail->send();
uj5u.com熱心網友回復:
問題是 Godaddy(和許多其他 VPS 提供商)阻止 SMTP 埠以打擊垃圾郵件發送者。
當您使用$mail->IsMail()時,電子郵件將通過 GoDaddy 的服務器完全繞過您的 Gmail 帳戶。
現在還有另一個問題,Google@gmail.com使用各種方法(例如 SPF)保護您的地址,因此即使您能夠發送電子郵件,它也很可能被標記為垃圾郵件 - 如果發送的話。否則任何人都可以像你一樣發送電子郵件..
我強烈建議您購買一個域名(如果您還沒有),或者:
- 將其托管在GoDaddys 電子郵件服務中并通過其SMTP 服務器發送(允許其 SMTP 服務器)
- 使用不依賴 SMTP 的外部服務(例如MailGun和他們的PHP SDK,但自己研究一個合適的)
如果您確實需要,可能還有其他一些“hacky”方式仍然可以通過 Gmail 發送這些電子郵件,例如在 VPS 中使用 VPN 或[1]在其他未被阻止的埠上從外部代理 google SMTP。請注意,這些方法仍然需要一些外部服務(很可能是付費的),并且可能與 GoDaddy 和/或 Gmail TOS 沖突
[1]顯然大多數 VPN 提供商也阻止 SMTP 埠以避免電子郵件垃圾郵件泛濫
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/465409.html
標籤:php 电子邮件 邮箱 godaddy-api
