2011-05-23 39 views
0

我使用WAMP的服務器,並試圖用PHP函數mail('[email protected]','my subject','my body');
以下設置在php.ini發送電子郵件中繼不允許消息:與PHP函數發送郵件時

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. 

這怎麼解決?

+1

夥計,苛刻-1! – Emyr 2011-05-23 11:20:51

回答

1

的ISPdomain.com SMTP服務器可能抱怨你的連接是其反垃圾郵件規則太簡單了。

+0

你能提供一個解決方案嗎? 爲什麼-1的問題? – Ash 2011-05-23 11:24:14

+0

設置一個本地SMTP服務器,並指出PHP。將SMTP服務器配置爲僅在本地接受郵件,以免您自己成爲中繼站。這些是大量的SMTP服務器選項和有關設置它們的指南。 (-1不是我的) – Emyr 2011-05-23 11:30:43

1

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

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

最簡單的方法是使用預製的郵件類像SwiftmailerHere是一個例子,如何做到這一點。

+0

謝謝,但我實際上不想再添加PHP代碼,因爲我使用的是wordpress。我無法從那裏發送郵件,所以我嘗試直接從PHP發送。是否有一種「開放」的方式讓WP也可以發送消息?也許安裝某種SMTP服務器? – Ash 2011-05-23 11:52:42

+0

@你在什麼操作系統上? – 2011-05-23 12:01:55

+0

@Ash我*認爲* [水星](http://www.pmail.com/overviews/ovw_mercwin.htm)可以做到這一點 - 我的記憶是朦朧的,但我認爲我曾用它一次,正是爲了這個目的。 – 2011-05-23 12:19:29

4

你的ISP的郵件服務器不允許「中繼」,這是一件好事,因爲否則他們最終會移動大量的垃圾郵件。

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

開放郵件中繼是這樣配置的SMTP服務器,它允許任何人在互聯網上通過它來發送電子郵件,而不僅僅是郵寄往或從已知用戶發起。這曾經是許多郵件服務器的默認配置;事實上,互聯網最初是這樣建立的,但由於垃圾郵件發送者和蠕蟲的利用,開放郵件中繼已經不受歡迎。許多中繼被關閉,或被其他服務器放在黑名單上。

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

你可以嘗試,是這樣說的php.ini線的黑客:

SMTP = 'username:[email protected]'s SMTP server address'

這並不保證該選項的工作,需要一個非標準的修改或選項設置上郵件服務器。

你的另一種選擇是簡單地運行不要求身份驗證,這將隨後直接將郵件發送到收件人的郵件服務器自己的本地代理的郵件服務器,或通過身份驗證的連接到您的郵件服務器。

我不知道是什麼建議與WampServer使用,但WampDeveloper Pro推薦的本地郵件服務器是:

  1. hmailserver
  2. mailenable
  3. Smartermail

你應該看到每個人的特點和要求。我相信其中一個可能會干擾MySQL(因爲安裝程序會嘗試放置它自己的副本)。