簡體   English   中英

使用PHP函數發送郵件時中繼不允許的消息

[英]Relaying not allowed message when sending mail with PHP function

我正在使用wamp服務器,並嘗試使用PHP函數mail('me@ISPdomain.com','my subject','my body');發送電子郵件mail('me@ISPdomain.com','my subject','my body');
php.ini具有以下設置:

SMTP = 'ISP's SMTP server'  
smtp_port = 25 

但是我得到消息:

Warning: mail() [function.mail]: SMTP server response: 550 5.7.1 Relaying not allowed. Please use SMTP Authentication.

如何解決呢?

您的ISP的郵件服務器不允許“中繼”,這是一件好事,因為否則它們最終將轉移大量垃圾郵件。

http://en.wikipedia.org/wiki/Open_mail_relay

開放式郵件中繼是一種SMTP服務器,其配置方式是使Internet上的任何人都可以通過它發送電子郵件,而不僅僅是發送給已知用戶或來自已知用戶的郵件。 這曾經是許多郵件服務器中的默認配置。 確實,這是最初建立Internet的方式,但是由於垃圾郵件發送者和蠕蟲的利用,開放式郵件中繼變得不受歡迎。 許多中繼已關閉,或被其他服務器列入黑名單。

為了能夠利用您的ISP的郵件服務器,您需要首先使用用戶名和密碼進行身份驗證。

您可以嘗試修改如下所示的php.ini行:

SMTP = 'username:password@ISP's SMTP server address'

由於此選項需要非標准的修改或在郵件服務器上設置的選項,因此不能保證此選項可以正常工作。

您的另一種選擇是簡單地運行不需要身份驗證的本地代理郵件服務器,然后它將直接將郵件發送到收件人的郵件服務器,或者通過與郵件服務器的身份驗證連接。

我不知道與WampServer一起使用的建議,但與WampDeveloper Pro一起使用的建議的本地郵件服務器為:

  1. 郵件服務器
  2. 可郵寄的
  3. 智能郵件

您應該看到每個功能和要求。 我相信其中之一可能會干擾MySQL(因為安裝程序將嘗試放置其自己的副本)。

ISPdomain.com SMTP服務器可能抱怨您的連接對於其反垃圾郵件規則而言太基礎了。

如錯誤消息所述,您需要對該服務器使用SMTP身份驗證。

使用PHP的內置SMTP功能是不可能的。

最簡單的方法是使用預制郵件程序類,例如Swiftmailer 是一個示例。

暫無
暫無

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

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