簡體   English   中英

使用PHP Mailer從本地服務器外部的電子郵件地址發送smtp電子郵件

[英]Using PHP Mailer to send smtp emails from an email address outside the local server

我想使用PHPMailer為我的網站配置聯系頁面。 我對着prroblem是,腳本工作, 地址在本地服務器如要設定如果我的域名是example.com,從該地址必須name@example.com。 當我以這種方式設置時,腳本可以完美運行。 我遇到的問題是,作為聯系人頁面,發件人地址必須是發件人的電子郵件地址,這意味着如果客戶使用諸如name@email.com的電子郵件地址與我聯系,則腳本將引發錯誤與下面的類似:

SMTP ERROR: DATA END command failed:
550-Your FROM address ( name@email.com , Dev Customer 550-)
must match your authenticated email user ( name@example.com ).

有誰知道解決此問題的方法嗎? 還是有其他選擇? 我將不勝感激提供的任何形式的幫助。 先感謝您。

根據Tigger的建議,您絕對不應使用提交者的地址作為發件人地址進行發送。 這是偽造的,會使您的郵件無法通過SPF檢查,從而不會導致郵件退回或委托到垃圾郵件文件夾的傳遞結束問題。 無論如何,至少十年來一直在積極提倡它,並且它也是一種使您容易受到12月份修復的PHPMailer中的安全漏洞的攻擊之一。

由於您已使用PHPMailer對此進行了標記,因此我將展示如何使用它來完成您所要求的操作:

$mail->setFrom('me@example.com', 'Contact form');
$mail->addReplyTo($_POST['email'], $_POST['name']);

這正是PHPMailer提供的示例聯系表單腳本所做的。 還值得檢查提交的值addReplyTo將自動驗證地址,因此您應該檢查返回值以確保。

可能有些電子郵件客戶端無法正確處理回復地址,但是由於少數客戶端的無效性,您不應將自己暴露在黑名單中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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