2010-09-07 22 views
0

我目前的項目是一種接收用戶輸入的表單。 我收到這些數據後,必須向一些電子郵件地址(包括插入數據的用戶)發送警告/報告。 幾乎一切正常運行,Apache,MySQL,PHP。配置郵件服務器以使用PHP

現在,我從來沒有安裝一臺郵件服務器,使用PHP工作,所以我有點失去。

我的僱主在他的服務器上安裝了MS Exchange 2007。我應該使用它,並且我將如何開始配置php以使用它? Exchange 2007(參數)需要什麼?

如果沒有,你會建議安裝一個新的郵件服務器只是這個目的有阿帕奇+ MySQL的+ PHP在同一臺機器上?

我更傾向於使用已存在的Exchange服務器,但我在一些網上的文章,它不是以配置最簡單的事情讀取。

UPDATE:

<?php 
include("Mail/Mail.php"); 
/* mail setup recipients, subject etc */ 
$recipients = "[email protected]"; 
$headers["From"] = "[email protected]"; 
$headers["To"] = "[email protected]"; 
$headers["Subject"] = "User feedback"; 
$mailmsg = "Hello, This is a test."; 
/* SMTP server name, port, user/passwd */ 
$smtpinfo["host"] = "mail.name.com"; 
$smtpinfo["port"] = "25"; 
$smtpinfo["auth"] = true; 
$smtpinfo["username"] = "username"; 
$smtpinfo["password"] = "pass"; 
/* Create the mail object using the Mail::factory method */ 
$mail_object =& Mail::factory("smtp", $smtpinfo); 
/* Ok send mail */ 
$mail_object->send($recipients, $headers, $mailmsg); 
?> 

使用這個上面的例子我無法通過Exchange 2007中

發送郵件我得到的頁面上沒有輸出錯誤,所以我有點失去。不知道什麼是錯的。

UPDATE:誰能推薦一個好的郵件服務器?

回答

0

好的。得到它的工作。 Phew。

我讀了很多後發現原因。這是關於smtp交換服務器的中繼問題。

但是如果不適合你的人,我永遠不會到那裏。 xD

謝謝大家。 =)

0

Exchange支持常規的SMTP郵件傳遞(它必須,否則它不能跟電子郵件的世界的其餘部分),所以只是在Exchange服務器指向你的PHP的配置,就好像它是一個普通的郵件服務器。

有郵件一些的.ini設置,記錄在這裏:http://php.net/manual/en/mail.configuration.php#ini.smtp

如果Exchange服務器不需要身份驗證,並從服務器接收郵件,這是所有應符合規定。

後續:

你閱讀郵件包中的文檔? send()方法在成功時返回TRUE,或在故障時返回PEAR_Error對象。它將包含有關發送嘗試失敗的任何詳細信息,很可能您需要$PEAR_Error:message。全部細節在這裏:http://pear.php.net/package/PEAR/docs/1.9.1/PEAR/PEAR_Error.html。從

$mail_object->send($recipients, $headers, $mailmsg); 

更改代碼

$status = $mail_object->send($recipients, $headers, $mailmsg); 
if ($status !== TRUE) { 
    die("Error sending mail: " . $status::message); 
} 
+0

當你提到認證是什麼意思?在正常情況下不應該要求嗎? – elvispt 2010-09-07 17:44:22

+0

某些郵件服務器必須先「登錄」才能與您有任何關係。例如,大多數郵件服務器不允許郵件從他們自己網絡的「外部」通過他們發送,但是如果您通過身份驗證來證明您是「本地」用戶,則允許郵件通過它們發送。 – 2010-09-07 19:11:38

+0

無法正常工作。檢查上面的編輯。 – elvispt 2010-09-08 15:44:48

0

它很可能需要驗證。這可能與將您的用戶名和密碼提供給您想要發送的電子郵件帳戶一樣簡單。

如果是這樣的話,我建議你使用PEAR郵件擴展。有一個稱爲工廠的功能,允許您使用smtp服務器進行身份驗證。(包括SSL加密,如果你發現你的服務器需要它)

http://pear.php.net/manual/en/package.mail.mail.factory.php

您的代碼看起來有點像這樣:

$smtp = Mail::factory('smtp', 
    array ('host' => $host, 
    'port' => $port, 
    'auth' => true, 
    'username' => $username, 
    'password' => $password)); 

$mail = $smtp->send($to, $headers, $body); 

您的服務器上安裝PEAR擴展並不難,因爲你可能會想。

+0

我現在在網上打獵,PEAR以及如何安裝它。稍後會回覆結果。 :) – elvispt 2010-09-08 16:12:22

+0

只是我的運氣。似乎php_phar.dll應該存在於ext目錄中,但在我的情況下不是。試圖安裝pear時出現各種錯誤。 :S – elvispt 2010-09-08 16:32:04

相關問題