[英]How to send mail using PHP?
我正在使用 Windows Vista 操作系統。 PHP、MySQL 作為數據庫和 Apache Z2567A5EC9705EB7AC2C984033E0618D 服務器。
我想向想要加入我網站的人發送通知。 但問題是當我點擊提交時。 它不會向用戶的 email 地址發送任何內容。
您認為最好的解決方案是什么?
<?php
$to = "recipient@example.com";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
if (mail($to, $subject, $body)) {
echo("<p>Message successfully sent!</p>");
} else {
echo("<p>Message delivery failed...</p>");
}
?>
你有幾個選擇:
使用 Pear "Mail" class,這需要訪問在端口 25 上偵聽的單獨 SMTP 服務器。
示例代碼如下:
function sendmail($from, $to, $subject, $message, $headers)
{
if (is_array($to)) {
$recipients = implode(', ', $to);
} else {
$recipients = $to;
}
$errorlevel = error_reporting();
$headers["From"] = $from;
$headers["To"] = $to;
$headers["Subject"] = $subject;
$params = array();
$params["host"] = "localhost";
$params["port"] = "25";
$params["auth"] = false;
error_reporting($errorlevel & ~E_WARNING);
$mail_object =& Mail::factory("smtp", $params);
$res = $mail_object->send($recipients, $headers, $message);
error_reporting($errorlevel);
return $res;
}
注意:這是舊代碼 - 我現在不記得為什么我必須屏蔽 E_WARNING
我會推薦使用 swiftmailer 庫,該項目有很好的文檔並且易於使用。 它還為使用默認 PHP mail() function 提供了幾個優點。
看起來您沒有安裝郵件服務器。 Apache 或 PHP 不會為您發送郵件。 Php 正在為此注冊功能,但在內部您必須配置郵件 smtp 服務器來進行實際發送。
只需查看“如何從 PHP 腳本發送 Email ”。 它使用郵件 function 發送郵件,並進一步提供本地和遠程 SMTP 配置的配置。
有很多方法可以通過 PHP 發送 email。 如果您不使用任何框架,則首先使用內部mail()
function。 我建議使用Zend Framework的 Zend_Mail 組件。 我已經使用過它,它運行良好,並為您提供了一種很好的 Object 定向方式來使用 PHP 發送電子郵件。 但是如果你有理由使用mail()
function,那么我想你可能需要知道這些:PHP mail()
does not send email 本身。 它利用其他工具發送電子郵件。 如果您在 Unix 系統中運行您的應用程序, mail()
會嘗試使用通常安裝在大多數類 Unix 系統上的 sendmail 程序發送 email。 在 Windows 平台上,沒有安裝 sendmail,因此 PHP 將嘗試使用 ZC2239A9319DE29F000ZF9 服務器發送 email。 所以你應該告訴 PHP 這個 SMTP 服務器在哪里,並提供 SMTP 服務器的用戶名/密碼,如果有的話。 您可以通過編輯 PHP 配置文件php.ini
來完成此操作。 該文件是一個基於文本的配置文件,PHP 在執行時將使用它。 找到您的php.ini
文件並在此文件中修改這些值:
SMTP = localhost
smtp_port = 25
sendmail_from = me@example.com
如果您不知道php.ini
文件在哪里,請創建一個簡單的 PHP 文件,例如info.php
並將此代碼放入其中:
<?php
phpinfo();
?>
運行您的頁面並搜索.ini
。 現在您知道php.ini
文件在哪里。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.