2012-06-26 37 views
1

我是新來的PHP世界(其實不是很多,但非常多)。如何在php 5.3中從頭開始使用mail()函數?

我使小塊網,所以我可以測試我需要的每個功能。現在我遇到了PHP附帶的mail()函數的問題,並且我在很多站點上查找了解決方案。我在這裏搜索,但沒有任何幫助,每次我找到似乎有效的答案,一個新的問題猛增。

讓我解釋一下我的情況:

我開始做一些代碼在那裏我包括HTML表單,所以我可以得到該郵件結構的用戶信息,這個想法是產生一種微量的,至極用戶觸發一些信息已經加載的特定時刻。後來,我注意到,如果我不能解決de mail()問題,我不會讓它工作。所以,我儘量減少我的問題,只是說:

<?php 
    mail($mail, $subject, $body); 
?> 

嗯,你可以想像,因爲我沒有修改php.ini中,因爲安裝XAMPP(這是我以前沒有提及),我得到了一些SMTP和sendmail_path錯誤; 所以我擡頭看這裏,並得到一些說明來配置php.ini。然後再試一次也沒有,它沒有解決。

嘗試使用PEAR的Mail_mime,但它使得一切都變得模糊,帶有非靜態問題。

希望你能幫上忙。

我編輯php.ini文件,所以我得到了

SMTP = localhost 
smtp_port = 25 

我沒有收到任何錯誤消息,現在,我只是不想收到一封電子郵件,我也沒有設置從標題,我忘了指出。我在phph.ini文件中設置了From頭,當它不起作用時,我在新代碼的變量中編輯它。更詳細的圖片將如下所示:

<?php 
    $to = '[email protected]'; 
    $headers = array("From"=>"[email protected]"); 
    $subject = 'This is the subject.'; 
    $body = 'Here is the message.'; 

    mail($mail, $subject, $body, $headers); 
?> 

這是許多試驗之一。

+1

如果您希望我們提供幫助,您可以提供您收到的實際錯誤消息。您的網站的目的以及您想要在大圖中做什麼是毫無意義的 - 我們只是想要錯誤消息。 –

+2

您是否使用本地計算機作爲SMTP中繼,或者您是否輸入了與中繼無關的有效SMTP服務器? – Hammerstein

+0

編輯起來smtp是localhost。 –

回答

0

您需要發送From標題。它可能會設置回到默認地址,但我的直覺是它不是。當然,這可能不是問題。

mail($mail, $subject, $body, $headers);

示例From頭將是From: [email protected]。將字符串中的標題與\r\n分開。

+0

你不需要'From'頭來使用'mail()'。事實上,你根本不需要頭部來發送郵件。 – Mike

+0

http://php.net/manual/en/function.mail.php - 注意: 發送郵件時,郵件必須包含From頭。這可以使用additional_headers參數來設置,或者可以在php.ini中設置默認值。 未能執行此操作將導致類似於Warning:mail():「sendmail_from」的錯誤消息未在php.ini或自定義「From:」頭中丟失。 From標題也​​設置Windows下的Return-Path。 –

+0

編輯了郵件功能中使用的標題,並在php.ini文件中嘗試過 –

相關問題