ホームページ バックエンド開発 PHPチュートリアル メールを送信するphpのmail()関数の使用例を詳しく解説

メールを送信するphpのmail()関数の使用例を詳しく解説

Jun 27, 2017 am 10:24 AM
mail php Eメール

1. はじめに
Mail()関数、この関数を使用してメールを送信できます。
要件
Mail 関数を使用するには、PHP がシステム内でバイナリ メール ファイルをコンパイルして送信する機能を備えている必要があります。 qmail や postfix などの他のメール プログラムを使用する場合は、それらを使用してメール パッケージを送信できるという確信が必要です。 PHP は最初にパス上で sendmail を検索するため、次のパスが推奨されます: :/usr/bin :/usr/sbin :/usr/etc :/etc:/usr/ucblib :/usr/lib PHP をコンパイルするユーザーは、バイナリの sendmail にもアクセスできる必要があります。
インストール
これらの機能はPHPコアの一部であり、インストールしなくても使用できます。
実行時設定
これらの関数の動作は、グローバル設定ファイルphp.iniの影響を受けます。
表 1. メールの基本構成オプション:

名前 デフォルト値 変更可能な値

SMTP "localhost" PHP_INI_ALL

smtp_port "25" PHP_INI_ALL

sendmail_from NULL PHP_INI_ALL

sendmail_path _PATH PHP_INI_SYSTEM

メールの詳細については、ini_set を参照してください。 () 設定オプションの関数。以下に、この構成オプションについて簡単に説明します。
SMTP string
Windows のみ: SMTP サーバーの DNS 名または IP アドレス。 PHP は、mail() 関数を使用して電子メールを送信するときに SMTP サーバーを使用します。
smtp_portint
Windows でのみ使用: mail() 関数を使用してメールを送信するときに、指定した SMTP サーバーに接続するポート番号を設定します。デフォルト: 25。 PHP 4.3.0以降でのみ利用可能です。
sendmail_from string
Windows システムで PHP が電子メールを送信するとき、「From:」電子メール アドレスが使用されます。
sendmail_path string
送信メールプログラムの場所。通常は /usr/sbin/sendmail または /usr/lib/ にあります。ここでの構成オプションは、適切に機能するようにデフォルト値に設定されています。ただし、失敗した場合は、ここで設定できます。
あなたのシステムがsendmailを使用できない場合は、以下の手順に従って、提供されているメールシステムでsendmailラッパー/代替品をセットアップする必要があります。たとえば、Qmail ユーザーは、これを新しいパス /var/qmail/bin/sendmail または /var/qmail/bin/qmail-inject に設定できます。
qmail - オプションなしでメールを正しく処理します。
リソースタイプ
この拡張モジュールはリソースタイプを定義しません。
事前定義された定数
この拡張モジュールは定数を定義しません

2. 使用方法
構文:

bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]])   
ログイン後にコピー

mail() 関数は、指定されたメッセージ (文字列メッセージ) を指定された電子メール アドレス (文字列宛先) に送信できます。 。複数の電子メール アドレスはカンマで区切る必要があります。この機能を使用して、電子メールの添付ファイルや特殊な種類のファイルを送信できます。
上記の構文の各パラメーターの意味は次のとおりです:
string to - 受信者の電子メール アドレス、
string subject - 電子メールの件名、
string message - 電子メールの本文、
string added_headers - 追加情報を追加します。電子メールはレターのヘッダーと末尾に追加されます。
メールが正常に送信された場合、mail() 関数は TRUE を返し、それ以外の場合は FALSE を返します。 知らせ! Windows での

mail() 関数の実行方法は、多くの点で UNIX システムとは異なります。
1. メッセージ本文の形成にローカルバイナリを使用しません;
2. From:、Cc:、Bcc:、Date: などのヘッダー要素は最初に MTA によって解釈されませんが、PHP によって解釈できます。 PHP < 4.3 は Cc: のみをサポートし、大文字と小文字が区別されます。PHP >= 4.3 は、前述のヘッダー要素をすべてサポートしますが、大文字と小文字は区別されません。
2.1. 例 1. メールを送信する:

mail("joecool@example.com", "My Subject", "Line 1nLine 2nLine 3");
ログイン後にコピー

2.2. 4 番目のパラメーターが使用される場合、このパラメーター文字列はレターのヘッダーと末尾に挿入されます。これは通常、追加のヘッダー情報を示すために挿入されます。複数の追加ヘッダー情報は、復帰 r と改行 n 文字で区切る必要があります。
例 2. 追加のヘッダー情報を含む電子メールを送信する:

mail("nobody@example.com", "the subject", $message,"From: webmaster@{$_SERVER[’SERVER_NAME’]}rn"    
."Reply-T webmaster@{$_SERVER[’SERVER_NAME’]}rn"."X-Mailer: PHP/" .phpversion());
ログイン後にコピー

2.3.Additional_parameters パラメーターが使用される場合、プログラムは電子メールの送信時に追加のパラメーターを設定するために sendmail_path 構成を使用します。たとえば、これを使用して、メール送信前に -f オプションを使用するときに送信者のアドレス エンベロープを設定できます。この方法を使用して送信者エンベロープを設定する場合、次を使用してエンベロープ送信者を設定するときに「X-Warning」ヘッダーがメッセージに追加されないように、Web サーバーが実行するユーザーを sendmail 構成に追加する必要がある場合があります。このメソッドです。
例 3. ヘッダー情報を追加し、コマンド パラメーターを追加して電子メールを送信します。

mail("nobody@example.com", "the subject", $message,"From: webmaster@{$_SERVER[’SERVER_NAME’]}",      
 "-fwebmaster@{$_SERVER[’SERVER_NAME’]}");
ログイン後にコピー

  注意:其中的第五个参数附加在PHP 4.0.5版本中。在PHP 4.2.3以后的版本中的安全模式中被禁止,如果用它的话将返回一个警告信息和返回FALSE值。   
  你同样能用简单的字符串构造技术建立一个复杂的邮件消息。
例子 4. 发送一个复杂邮件

/*收件人*/
$to = "Mary " . ", " ; //注意逗号
$to .= "Kelly ";
 /*主题*/
$subject = "Birthday Reminders for August";
/*正文*/
$message = ’         
Here are the birthdays upcoming in August!
’;
 /*你能设置头内容:Content-type来发送HTML格式邮件。*/
 $headers = "MIME-Version: 1.0rn";
$headers .= "Content-type: text/html; charset=iso-8859-1rn";
 /*附加头消息*/
$headers .= "From: Birthday Reminder rn";
$headers .= "Cc: birthdayarchive@example.comrn";
$headers .= "Bcc: birthdaycheck@example.comrn";
/*发送它*/
mail($to, $subject, $message, $headers);
@example.com>@example.com>@example.com>
ログイン後にコピー

注意:
  1、不要在收件人地址和主题中有换行符号,否则邮件可能不能被发送出去。
  2、收件人地址参数(string to)中不能存在以"Something "形式地址,否则当用MTA时mail命令可能不被正确的分析。
  3、PHP使用mail函数发送邮件标题乱码问题 PHP程序使用mail()函数发送邮件的时候,标题中文的话会出现乱码。
解决方法:
  先用函数base64_encode() — 使用 MIME base64 对数据进行编码 标题字符串前加编码类型例如: =?UTF-8?B? 标题字符串后加:?= 邮件header说明Content-type — 防止邮件正文也乱码
举例:

$to  = &#39;xinple@example.com&#39;;
$subject  = "=?UTF-8?B?".base64_encode(&#39;邮件标题&#39;)."?=";
$headers  = &#39;MIME-Version: 1.0&#39; . "rn";
$headers .= &#39;Content-type: text/html; charset=utf-8&#39; . "rn";
// Additional headers
$headers .= &#39;To: Xinple&#39; . "rn";
$headers .= &#39;From: Admin &#39; . "rn";
$headers .= &#39;Reply-To: Xinple&#39; . "rn";
mail($to, $subject, $message, $headers);@example>@example.com>@example.com
ログイン後にコピー

以上がメールを送信するphpのmail()関数の使用例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

See all articles