検索
ホームページphp教程php手册PHP を使用してオンラインで電子メールを送信する方法を学習します。

当使用者在参观网页时,有时想 Email 给 Webmaster 但是再执行 Email 程式总是不方使,使用者在按下 mailto:abc@webjx.com 还要花段时间打开自己这儿的 Outlook 岂不麻烦。这时,若是 Homepage 能提供写信的功能就太酷了。同时意见信箱还是以提醒或者要求使用者一定要填入哪些资料,这对资料仓储而言,也是了解客户的最好方法。
整个意见信箱其实就像 Outlook 或者其它电子邮件软体,开启寄发新邮件的功能,不同的地方在于使用 Outlook 时,寄件人是固定的,而要填上收件人的地址;而网站上的意见信箱,收件人几乎都是 Webmaster,反而是要填上寄件人的电子邮件地址。当然另一个不同之处是 Outlook 处理寄信的动作;而意见信箱是由 Web 伺服器处理使用者发送的信件。

在更进阶的设计后,甚至可以变成 Web Mail,像 HotMail 般,只要用浏览器就可以在任何地方用任何电脑收发信件。

当然,也可以做进阶的设计,将使用者的意见储放在资料库中,留待日后整理成更有用的资料。不过这就不是这节要讨论的部份了。

在 UNIX 的系统中,大部份和电子邮件有关的问题都和 sendmail 有关,除非系统管理员较偏执,才会用其它的系统。因此,意见信箱的设计开发,也是使用 sendmail 来达成所需要的功能。而 WindowsNT 系统中,由于没有 sendmail 程式,需要另行符费购买,或使用其它的邮件派送软体,因此本节程式无法在 WindowsNT 系统执行。

程式的流程如下

送出填写意见的表格到使用者的浏览器上。
使用者填好后送出资料到伺服器。
伺服器将使用者填的资料整理后,存入档案。
利用 UNIX 的管道指令及 sendmail 程式将意见送给系统管理人员。
伺服器通知使用者意见已送出。
以下就是完整的范例程式




意见信箱


$mailto="yourname@webjx.com";
if (($topic!="") and ($Email!="") and ($body!="")) {
$tmpfilename = tempnam("/tmp", "dm");
$fp = fopen($tmpfilename, "w");
fwrite($fp, "From: ".$Email."\n");
fwrite($fp, "Subject: ".$topic." \n\n");
fwrite($fp, $body."\n\n");
fwrite($fp, "送信人:".$sender."\n");
fwrite($fp, "发信IP:".$REMOTE_ADDR."\n");
fclose($fp);

$execstr="cat ".$tmpfilename." │ /usr/lib/sendmail ".$mailto;
exec($execstr);

$execstr="echo $sender $REMOTE_HOST >> /var/log/mail.log";
exec($execstr);
echo "信件已送出!!本站工作人员尽快处理您的问题






";
} else {
?>

method=post>






主题
姓名
Email
内容



}
?>

プログラムが PHP 分析を実行するとき、まずユーザーがデータを入力したかどうかを判断します。データがない場合は、意見フォームがユーザーに送信されます。データがある場合は、ユーザーが該当するデータを入力したことを意味し、処理されます。

処理の原則として、まずユーザーが入力した情報を一時ファイルに書き込みますが、複数のユーザーが同時にコメントを入力することを防ぐため、ファイルは上書きされます。アーカイブするたびに異なる一時ファイルが必要になる場合、この問題は、固有の一時ファイルを作成するために使用される te​​mpnam() 関数を使用して解決できます。 ファイル名の問題が解決したら、PHP が提供するファイル処理機能を使用して、作成したファイルにユーザーが入力したデータを書き込みます。ファイルを閉じれば完了です。情報がメールで送信されない場合でも、システムはコメント ファイルを保存できます。 /tmp に保存した場合、一部の UNIX システム (SUN Solaris など) ではシステムの再起動時にこれらのデータが失われますが、そうでないシステム (Slackware Linux など) は最初に計画する必要があることに注意してください。保存するには、消去されないディレクトリに保存する必要があります。

UNIX で最も強力な機能はパイプです。

cat tmpfilename │ /usr/lib/sendmail webjx@webjx のように、パイプを使用してメール送信アクションを処理できます。 com

このコマンドの意味は、パイプラインのもう一方の端にある sendmail プログラムにファイルを送信することであり、sendmail はファイルを wilson@webjx.com に送信します。したがって、このパイプライン コマンドを使用して、Web マスターまたはカスタマー サービス部門にコメントを送信できます。複数の人に送信したい場合は、メーリング リストまたはチャンネル コマンドを使用してレターを複数回送信できます。

PHP プログラムで UNIX プログラムまたは外部命令を使用するには、exec() 関数を使用できます。レターを送信した後、それがすでに処理されていることをユーザーに通知し、コメントを処理するための準備作業が完了します。もちろん、後でそれにどう対処するかについては、PHP 本の範囲を超えています。

もちろん、レターを送信する方法は複数あります。mail() 関数を使用することも、UNIX ネットワーク ソケットを使用することもできます。人それぞれ、工夫は違います。



声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール