[英]Emailing in PHP
我找到了一些有關如何執行此操作的教程,但是它不起作用。 這是我簡單的電子郵件代碼:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$zone = $_POST['zone'];
$call_time = $_POST['call_time'];
$comment = $_POST['comment'];
$to = 'MY EMAIL';
$subject = '$name is interested in your product!';
$message = 'name = $name\nemail = $email\nphone = $phone\ntimezone = $zone\nbest time to call = $call_time\nmessage = $comment';
if(mail($to, $subject, $message))
{
echo "The information was successfully sent.";
}
else
{
echo "The information was NOT sent.";
}
?>
(一旦我成功了,我會加強安全性的)
那么有什么想法為什么不起作用? 我收到成功消息,但沒有收到電子郵件。
好的,所以我想我本可以更具體一些:
我正在運行Mac OS X
PHP可能會將電子郵件成功傳遞到您的本地smtp服務器(我認為是后綴)。 那會給你成功的信息。 可能您的計算機上的后綴未配置為實際成功發送電子郵件。 或端口25被您的ISP阻止。 或電子郵件服務器端的其他內容。
您的PHP很好。 我認為您需要解決SMTP服務器配置問題。
首先,您應該閱讀PHP郵件頁面 。 有很多陷阱。
我還將檢查以確保您實際上在運行PHP腳本的計算機上運行SMTP服務器。
在基於* nix的系統上,返回true的mail()僅表示PHP能夠與您系統上的sendmail(或其替代之一)進行通信。 True只是表明它在預期的位置找到了sendmail,並且能夠將郵件正確發送。
由於以下原因,返回值通常沒有用:如您所見,當郵件真的無法到達任何地方時,它將返回true,並且在某些情況下,它實際上可以返回false並成功發送郵件。
您已經表明您使用的是Mac,可以通過打開控制台找到一些錯誤消息。 最終,您可能不希望您的應用程序真正發送郵件,但是將本地郵件服務器配置為中繼可以使它發生。
嘗試使用Zend Framework中的Zend_Mail ,可能對您來說更容易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.