PHP開發基礎教學之發送電子郵件

一、PHP mail()函數

PHP mail() 函數用於從腳本發送電子郵件。

語法:

mail(to,subject,message,headers,parameters)

57.png


#註:PHP 運行郵件函數需要一個已安裝且正在運行的郵件系統(如:sendmail、postfix、qmail等)。所使用的程式透過在 php.ini 檔案中的配置設定進行定義。請在我們的 PHP Mail 參考手冊 閱讀更多內容。




#二、PHP 簡易E-Mail

透過PHP 發送電子郵件的最簡單的方式是發送一封文字email。

在下面的實例中,我們先宣告變數($to, $subject, $message, $from, $headers),然後我們在mail() 函式中使用這些變數來傳送了一封E -mail

實例:程式碼如下

<?php
$to = "1264010730@qq.com";         // 邮件接收者
$subject = "参数邮件";                // 邮件标题
$message = "Hello! 这是邮件的内容。";  // 邮件正文
$from = "1264010730@qq.com";   // 邮件发送者
$headers = "From:" . $from;         // 头部信息设置
mail($to,$subject,$message,$headers);
echo "邮件已发送";
?>

三、PHP Mail 表單

透過PHP,您能夠在自己的網站製作一個回饋表單。下面的實例向指定的e-mail 位址發送了一條文字訊息

實例:程式碼如下:

<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>

<?php
if (isset($_REQUEST['email'])) { // 如果接收到邮箱参数则发送邮件
	// 发送邮件
	$email = $_REQUEST['email'] ;
	$subject = $_REQUEST['subject'] ;
	$message = $_REQUEST['message'] ;
	mail("someone@example.com", $subject,
	$message, "From:" . $email);
	echo "邮件发送成功";
} else { // 如果没有邮箱参数则显示表单
	echo "<form method='post' action='mailform.php'>
	Email: <input name='email' type='text'><br>
	Subject: <input name='subject' type='text'><br>
	Message:<br>
	<textarea name='message' rows='15' cols='40'>
	</textarea><br>
	<input type='submit'>
	</form>";
}
?>
</body>
</html>

輸出如右所示

程式碼解釋:

首先,檢查是否填寫了郵件輸入框

#如果未填寫(例如在頁面被首次造訪時),輸出HTML 表單

如果已填寫(表單填寫後),從表單發送電子郵件

當填寫表單點擊提交按鈕後,頁面重新載入,可以看到郵件輸入被重置,同時顯示郵件發送成功的訊息

註解:這個簡易發送e-mail 不安全,在本教學的下一章中,您將閱讀到更多關於電子郵件腳本中的安全隱患,我們將為您講解如何驗證使用者輸入使它更安全。

學習心得:傳送不成功原因分析

上述第一個實例可能會出現如下錯誤提示

 58.png

警報解釋:

在主機25連接埠,無法連線到郵件伺服器,請核實您的SMTP(郵件傳輸協定)


四、PHP Mail 參考手冊

如需查看更多關於PHP mail() 函數的信息,請訪問我們的 PHP Mail 參考手冊。


#
繼續學習
||
<html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <?php if (isset($_REQUEST['email'])) { // 如果接收到邮箱参数则发送邮件 // 发送邮件 $email = $_REQUEST['email'] ; $subject = $_REQUEST['subject'] ; $message = $_REQUEST['message'] ; mail("someone@example.com", $subject, $message, "From:" . $email); echo "邮件发送成功"; } else { // 如果没有邮箱参数则显示表单 echo "<form method='post' action='mailform.php'> Email: <input name='email' type='text'><br> Subject: <input name='subject' type='text'><br> Message:<br> <textarea name='message' rows='15' cols='40'> </textarea><br> <input type='submit'> </form>"; } ?> </body> </html>