Mail Server 沒有 PTR / DKIM / SPF的解法(Sendgrid、Brevo)

其實很簡單…
使用其他廠商的服務即可

廠商一:sendgrid

https://sendgrid.com

sendgrid原本可以每天免費寄送100 封信,但2025 開始,免費帳號有60天試用期。

  • 註冊 sendgrid
  • 驗證domain (Settings → Sender Authentication → Domain Authentication)
  • 就可以在頁面內找到API_KEY,填入 php 後即可寄信
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require __DIR__ . '/vendor/autoload.php';

$mail = new PHPMailer(true);

try {
    // === SMTP 設定 ===
    $mail->isSMTP();
    $mail->Host       = 'smtp.sendgrid.net';
    $mail->SMTPAuth   = true;
    $mail->Username   = 'apikey'; // 固定值
    $mail->Password   = '你的_SENDGRID_API_KEY';
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
    $mail->Port       = 587;

    // === 寄件者 ===
    $mail->setFrom('system@quantoyo.com', 'Quantoyo System');

    // === 收件者 ===
    $mail->addAddress('test@gmail.com'); // 改成你要測試的信箱

    // === 內容 ===
    $mail->isHTML(true);
    $mail->Subject = '【測試信】eSIM 發送成功';
    $mail->Body = '
        <h2>您的 eSIM 已開通</h2>
        <p>感謝您使用 Quantoyo 服務。</p>
        <p>此為系統自動通知信,請勿回覆。</p>
    ';

    $mail->AltBody = '您的 eSIM 已開通';

    $mail->send();
    echo "✅ 寄信成功";

} catch (Exception $e) {
    echo "❌ 寄信失敗:{$mail->ErrorInfo}";
}
?>

如果沒有內建PHPMailer,可以去github 抓,再載入即可

https://github.com/PHPMailer/PHPMailer

程式碼上方改成

=======這是分隔線=======

因為Sendgrid 有日期限制,60天後會直接被取消帳號
後來換成了Brevo

https://www.brevo.com

Brevo 的免費額度是「每天 300 封」!!!

基本上步驟差不多,但是Brevo 跟goDaddy 有連線,可以自動設定,這非常的棒

  • 點擊右上角名稱 -> 「Senders, Domains & Dedicated IPs」
  • 選擇 「Domains」 -> 點擊 「Add a domain」
  • 輸入你的網域(例如 yourdomain.com)。
  • 與goDaddy連動設定 CNAME 與 TXT
  • Verify & Authenticate」

值得注意的是程式碼Username 會需要填寫


    $mail->Username   = 'XXXXXXX@smtp-brevo.com'; //這邊會是一個 brevo顯示在畫面上的 mail
    $mail->Password   = '你的_SENDGRID_API_KEY';

發佈留言