2014-01-15 60 views
0

你好,我正在裝箱一個簡單的PHP郵件應用程序。爲此,我爲Send To:input和Subject:input創建了一個HTML表單。現在我想要打開一個HTML文件併發送到接收的消息。當我填寫index.php上的Send TO和Subject輸入字段並提交時,沒有錯誤,只是html文件顯示在下一頁,但沒有MAILS通過。PHP郵件發送文件.html

我在localhost上工作。

HTML文件:

<html> 
<head></head> 

<body> 

<h2>Mail</h2> 

<form name="form1" method="post" action="mail.php"> 
    Send To: <input type="text" id="recipient" name="recipient"> 
    <br> 
    Subject: <input type="text" id="subject" name="subject"> 
    <br> 
    <input type="submit" value="Send"> 

</form> 

</body> 

</html> 

PHP文件:

<?php 

$to = $_POST['recipient']; 
$subject = $_POST['subject']; 
$message = readfile("welcome.html","r") or exit ("Unable to open file"); 
fclose($message); 


mail($to, $subject, $message); 

?> 

可能有人提出一個解決方案或直接我對這種話題的閱讀來源。

+0

在這個過程的哪個階段會發生故障?代碼中有錯誤嗎? SMTP服務器有錯誤嗎?如果您在測試SMTP服務器上指出這一點,它是否能夠按預期成功接收郵件?有很多事情可以阻止電子郵件在您的個人收件箱中顯示,並且很少有任何事情與代碼有關。 – David

+0

你有沒有試過用單個字符或單詞發送一封簡單的舊電子郵件?如果這不起作用,您的問題不是發送文件的內容,而是發送任何內容。如果你在本地主機上工作,這很有可能是你的問題。 –

+0

你有沒有試過在使用簡單的文本之前嘗試讀取文件等一旦那工作,然後你可以進步? –

回答

0

如果你在本地主機上工作,你的網絡盒子可能會阻塞對應於smtp郵件端口的端口25。

您應該配置您的盒子才能打開它,或者在不受此配置問題影響的服務器上進行測試。

+0

沒錯實際上我覺得這個問題是與本地主機你怎麼和我應該在哪裏配置ini.php允許帶外郵件 – Tomazi

+0

這不是在任何ini.php,它在你的互聯網盒的配置。例如,在法國,我有一個「livebox」,當我在我的網絡瀏覽器中鍵入「livebox」時,我可以訪問其配置。這是阻止你的郵件的互聯網盒,這不是一個PHP的問題。 –

0

您錯過了Content-Type標題可將消息設置爲HTML。另外,如果您正在使用本地計算機,則需要設置SMTP服務器來發送電子郵件。

$to = $_POST['recipient']; 
$subject = $_POST['subject']; 
$message = readfile("welcome.html","r") or exit ("Unable to open file"); 

$headers = "Content-type: text/html\r\n"; 

fclose($message); 


mail($to, $subject, $message, $headers); 
+0

確定這個作品,但相反的HTML內容我得到一個數字整數不是內容任何想法我可以修復它 – Tomazi

0

其他人已經幫助你找出你的發送問題,但正如我在我的評論中指出的那樣,你正在使用錯誤的文件閱讀功能。您應該使用file_get_contents來代替,因爲它實際上會返回一個包含文件內容的字符串,而您當前的解決方案將返回一個表示讀取的字節數的整數。請訪問http://us3.php.net/manual/en/function.file-get-contents.php以瞭解更多信息。