検索

PHPメール送信クラス

PHP のメール送信クラスは、HTML 形式でメールを送信できるだけでなく、添付ファイルも送信できます
クラスメール {
//---グローバル変数を設定する
var $mailTo = "" // 受信者
; var $mailCC = "" // CC
; var $mailBCC = "" // 秘密の CC
; var $mailFrom = "" // 送信者
; var $mailSubject = "" // 件名
; var $mailText = "" // テキスト形式のレター本文
; var $mailHTML = "" // HTML形式のメール本文
; var $mailAttachments = "" // 添付ファイル
; /* 関数 setTo($inAddress): メールの処理に使用されるアドレス パラメーター $inAddress
1 つ以上の文字列とメール アドレス変数を含めるには、カンマを使用して複数のメール アドレスを区切ります
デフォルトの戻り値は true です
************************************************* * **********/
関数 setTo($inAddress){
//--explode() 関数を使用して、「,」に基づいてメール アドレスを分割します
$addressArray =explode( ",",$inAddress); //-- ループを通じて電子メール アドレスの有効性を確認します
for($i=0;$icheckEmail($addressArray[$i])==false) return false; //--すべての正当な電子メール アドレスは配列に保存されます
$this->mailTo = implode($addressArray, ","); true を返します。 /**************************************************
関数 setCC($inAddress) カーボンコピー担当者のメールアドレスを設定します
パラメーター $inAddress は、1 つ以上の電子メール アドレス、電子メール アドレス変数、
を含む文字列です。 複数の電子メール アドレスを区切るにはカンマを使用します。デフォルトの戻り値は true です。 ************************************************* * ************/
関数 setCC($inAddress){
//--explode() 関数を使用して、「,」に基づいてメール アドレスを分割します
$addressArray =explode( ",",$inAddress); //-- ループを通じて電子メール アドレスの有効性を確認します
for($i=0;$icheckEmail($addressArray[$i])==false) return false; //--すべての正当な電子メール アドレスは配列に保存されます
$this->mailCC = implode($addressArray, ","); true を返します。 /****************************************************
関数 setBCC($inAddress) は、秘密のカーボン コピー アドレスを設定します。パラメーター $inAddress には 1 つ以上の
が含まれます。 電子メール アドレスの文字列、電子メール アドレス変数。複数の電子メール アドレスを区切るにはカンマを使用します。デフォルトの戻り値は
です。 本当です
*****************************************/
関数 setBCC($inAddress){
//--explode() 関数を使用して、「,」に基づいてメール アドレスを分割します
$addressArray =explode( ",",$inAddress); //-- ループを通じて電子メール アドレスの有効性を確認します
for($i=0;$i { if($this->checkEmail($addressArray[$i])==false)
false を返します。 }
//--すべての正当な電子メール アドレスは配列に保存されます
$this->mailBCC = implode($addressArray, ","); true を返します。 }
/*************************************************** * *************
関数 setFrom($inAddress): 送信者のアドレスを設定します。パラメーター $inAddress は、含まれるメールです
アドレス文字列のデフォルトの戻り値は true です
***************************************/
関数 setFrom($inAddress){
if($this->checkEmail($inAddress)){
$this->mailFrom = $inAddress
true を返します。 false を返します。 /***********************
関数 setSubject($inSubject) は、メールの件名パラメーター $inSubject を文字列
に設定するために使用されます。 返されるデフォルト値は true です
******************************************/
関数 setSubject($inSubject){
if(strlen(trim($inSubject)) > 0){
$this->mailSubject = ereg_replace( "n", "",$inSubject); true を返します。 false を返します。 /************************************************ * **
関数 setText($inText) テキスト形式のメール本文パラメータを設定します $inText はデフォルトのテキストコンテンツです
返還は真です
****************************************/
関数 setText($inText){
if(strlen(trim($inText)) > 0){
$this->mailText = $inText;  
true を返します。  }
false を返します。   
}
/************************************
関数 setHTML($inHTML) HTML 形式のメール本文パラメータ $inHTML を HTML 形式に設定します
デフォルトの戻り値は true です
*************************************/
関数 setHTML($inHTML){
if(strlen(trim($inHTML)) > 0){
$this->mailHTML = $inHTML;   
true を返します。  }
false を返します。  }
/*************************
関数 setAttachments($inAttachments) は電子メールの添付ファイルを設定します パラメーター $inAttachments
これはディレクトリを含む文字列であり、カンマで区切られた複数のファイルを含むこともできます。デフォルトの戻り値は true です。 ******************************************/
関数 setAttachments($inAttachments){
if(strlen(trim($inAttachments)) > 0){
$this->mailAttachments = $inAttachments;   
true を返します。  }
false を返します。  }
/********************************
関数 checkEmail($inAddress): この関数は、主に以前にすでに呼び出しています
メールアドレスの正当性を確認するために使用されます
****************************************/
関数 checkEmail($inAddress){
return (ereg( "^[^@ ]+@([a-zA-Z0-9-]+.)+([a-zA-Z0-9-]{2}|net|com|gov|mil| org|edu|int)$",$inAddress));
  }
/****************************************************
関数loadTemplate($inFileLocation,$inHash,$inFormat)は一時ファイルを読み取り、
ファイルのディレクトリを見つけるために役に立たない情報パラメータ $inFileLocation を置き換えます
一時的な値を保存するための $inHash メール本文を配置するための $inFormat
************************************************* * ***********/
functionloadTemplate($inFileLocation,$inHash,$inFormat){
/* 比如邮件内に以下の内容があります: 親愛なる ~!UserName~ 様、
あなたのアドレスは ~!UserAddress~ */
です //--其中”~!”=起始标志”~”=结束标志
$templateDelim = "~";   
$templateNameStart = "!";   
//--これらの地方并掴他们代替换掉
$templateLineOut = "";  //--打开临時文件
if($templateFile = fopen($inFileLocation, "r")){
   while(!feof($templateFile)){
$templateLine = fgets($templateFile,1000);    
$templateLineArray =explode($templateDelim,$templateLine);   
for( $i=0; $i //--寻找開始位置
if(strcspn($templateLineArray[$i],$templateNameStart)==0){
//-- 代替换相应的值
$hashName = substr($templateLineArray[$i],1);   
//-- 代替换相应的值
$templateLineArray[$i] = ereg_replace($hashName,(string)$inHash[$hashName],$hashName);  
}
}
//--输出字符数组并叠加
$templateLineOut .= implode($templateLineArray, "");  
} //--关闭文件fclose($templateFile);   
//-- 設置本体格式(文本またはhtml)
if( strtoupper($inFormat)== "テキスト" )
return($this->setText($templateLineOut));   
else if( strtoupper($inFormat)== "HTML" )
return($this->setHTML($templateLineOut));  
} falseを返します。
  }
/*****************************************
関数 getRandomBoundary($offset) はランダムな境界値を返します
パラメーター $offset は整数です – マルチパイプライン呼び出しに使用され、md5() でエンコードされた文字列を返します
***************************************/
関数 getRandomBoundary($offset = 0){
//--随机数生成
srand(time()+$offset);   
//-- md5 暗号の 32 桁文字列を返します
return ( "----".(md5(rand()))); /*******************************************
関数: getContentType($inFileName) は添付ファイルの種類を決定するために使用されます
*********************************************/
関数 getContentType($inFileName){
//-- パスを削除
$inFileName = ベース名($inFileName); //--拡張子のないファイルを削除します
if(strrchr($inFileName, ".") == false){
"アプリケーション/オクテットストリーム" を返します
}
//--ゾーン拡張を提案し、判断します
$extension = strrchr($inFileName, "."); スイッチ($拡張子){
".gif" の場合: "画像/gif" を返します。 case ".gz": "application/x-gzip" を返します
; case ".htm": "text/html" を返します。 case ".html": "text/html" を返します。 ".jpg" の場合: "画像/jpeg" を返します。 case ".tar": "application/x-tar" を返します
; case ".txt": "text/plain" を返します
; case ".zip": "アプリケーション/zip" を返します
; デフォルト: "アプリケーション/オクテットストリーム" を返します。 }
"アプリケーション/オクテットストリーム" を返します
}
/***********************************************
関数 formatTextHeader はテキストコンテンツをテキストファイルヘッダーに追加します
************************************************* * ***/
関数 formatTextHeader(){ $outTextHeader = ""; $outTextHeader .= "コンテンツタイプ: text/plain;
charset=us-asciin";
$outTextHeader .= "コンテンツ転送エンコーディング: 7bitnn"; $outTextHeader .= $this->メールテキスト
; $outTextHeader を返します。 } /************************************************
関数 formatHTMLHeader() は、HTML ファイルのヘッダーをメール本文に追加します
*****************************************/
関数 formatHTMLHeader(){
$outHTMLHeader = ""; $outHTMLHeader .= "コンテンツタイプ: text/html;
charset=us-asciin";
$outHTMLHeader .= "コンテンツ転送エンコーディング: 7bitnn"; $outHTMLHeader .= $this->メールHTML.
; $outHTMLHeader を返します。 }
/************************************
関数 formatAttachmentHeader($inFileLocation) は電子メールの添付ファイルを識別します
*******************************/
関数 formatAttachmentHeader($inFileLocation){
$outAttachmentHeader = ""; //--上記の関数 getContentType($inFileLocation) を使用して添付ファイルの種類を取得します
$contentType = $this->getContentType($inFileLocation); //--添付ファイルがテキストの場合は、標準の 7 桁のエンコードを使用します
if(ereg( "テキスト",$contentType)){
$outAttachmentHeader .= "コンテンツタイプ: ";n"; $outAttachmentHeader .= ' name="'.basename($inFileLocation). '"'. "n"; $outAttachmentHeader .= "コンテンツ転送エンコーディング: 7bitn"; $outAttachmentHeader .= "コンテンツの配置: 添付ファイル;n"; $outAttachmentHeader .= ' filename="'.basename($inFileLocation). '"'. "nn"; $textFile = fopen($inFileLocation, "r"); while(!feof($textFile)){
$outAttachmentHeader .= fgets($textFile,1000); }
//-- ファイルを閉じる fclose($textFile)
; $outAttachmentHeader .= "n"; }
//--非テキスト形式は 64 ビットでエンコードされます
else{ $outAttachmentHeader .= "コンテンツタイプ: ";n"; $outAttachmentHeader .= ' name="'.basename($inFileLocation). '"'. "n"; $outAttachmentHeader .= "コンテンツ転送エンコーディング:base64n"; $outAttachmentHeader .= "コンテンツの配置: 添付ファイル;n"; $outAttachmentHeader .= ' filename="'.basename($inFileLocation). '"'. "nn"; //-- 外部コマンド uuencode を呼び出してエンコードします
exec( "uuencode -m $inFileLocation nothing_out",$returnArray); for ($i = 1; $i $outAttachmentHeader .= $returnArray[$i]
; }
$outAttachmentHeader を返します。 }
/*******************************
send() 関数はメールの送信に使用され、正常に送信された場合の戻り値は true です
***********************************/
関数 send(){
//--メールヘッダーを空に設定します
$mailHeader = ""; //--CC を追加
if($this->mailCC != "")
$mailHeader .= "CC: ".$this->mailCC
; //--秘密のカーボンコピー担当者を追加
if($this->mailBCC != "")
$mailHeader .= "BCC: ".$this->mailBCC
; //--送信者を追加
if($this->mailFrom != "")
$mailHeader .= "FROM: ".$this->mailFrom. //----------------------------メール形式-------------- -- ----------
//--テキスト形式
if($this->mailText != "" && $this->mailHTML == "" && $this->mailAttachments == ""){
return mail($this->mailTo,$this->mailSubject,$this->mailText,$mailHeader); }
//--html またはテキスト形式
else if($this->mailText != "" && $this->mailHTML != "" && $this->mailAttachments == ""){
$bodyBoundary = $this->getRandomBoundary(); $textHeader = $this->formatTextHeader(); $htmlHeader = $this->formatHTMLHeader(); //--MIME バージョンを設定します
$mailHeader .= "MIME バージョン: 1.0n"; $mailHeader .= "Content-Type: multipart/alternative;n"; $mailHeader .= ' 境界="'.$bodyBoundary. '"'; $mailHeader .= "nnn"; //--メール本文と境界線を追加します
$mailHeader .= "--".$bodyBoundary
; $mailHeader .= $textHeader
$mailHeader .= "--".$bodyBoundary
; //--HTML タグを追加します
$mailHeader .= $htmlHeader; $mailHeader .= "n--".$bodyBoundary
; //--メールを送信
return mail($this->mailTo,$this->mailSubject, "",$mailHeader); }
//--テキスト、HTML、添付ファイル
else if($this->mailText != "" && $this->mailHTML != "" && $this->mailAttachments != ""){
$attachmentBoundary = $this->getRandomBoundary(); $mailHeader .= "Content-Type: multipart/mixed;n"; $mailHeader .= 'boundary="'.$attachmentBoundary. '"'
; $mailHeader .= "これは MIME 形式のマルチパート メッセージです。n"; $mailHeader .= "--".$attachmentBoundary
; $bodyBoundary = $this->getRandomBoundary(1); $textHeader = $this->formatTextHeader(); $htmlHeader = $this->formatHTMLHeader(); $mailHeader .= "MIME バージョン: 1.0n"; $mailHeader .= "Content-Type: multipart/alternative;n"; $mailHeader .= ' 境界="'.$bodyBoundary. '"'; $mailHeader .= "nnn"; $mailHeader .= "--".$bodyBoundary
; $mailHeader .= $textHeader
$mailHeader .= "--".$bodyBoundary
; $mailHeader .= $htmlHeader; $mailHeader .= "n--".$bodyBoundary
; //--添付ファイルの値を取得します
$attachmentArray =explode( ",",$this->mailAttachments); //--添付ファイルの数に基づいてループします
for($i=0;$i //-- $mailHeader .= "n--".$attachmentBoundary を分割します
; //--添付ファイル情報
$mailHeader .= $this->formatAttachmentHeader($attachmentArray[$i]); }
$mailHeader .= "--".$attachmentBoundary
; return mail($this->mailTo,$this->mailSubject, "",$mailHeader); }
false を返します。 }
}
?>


使用方法:
「email.class」を含めます

$mail->setTo("a@a.com") //受信者
$mail-> setCC("b@b.com,c@c.com") //CC
$mail-> setCC("d@b.com,e@c.com") // 秘密の CC
$mail->setFrom(“f@f.com”);//送信者
$mail->setSubject("件名") //件名
; $mail->setText("テキスト形式") ;//送信テキスト形式は変数にすることもできます
$mail->setHTML("html format") ;//送信する HTML 形式を変数にすることもできます
$mail->setAttachments("c:a.jpg") ;//添付ファイルを追加するには、パスを指定する必要があります
$mail->send(); //メールを送信する

以上、PHPのメール送信クラスを内容も含めて紹介しましたが、PHPチュートリアルに興味のある友人の参考になれば幸いです。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
トラフィックの高いウェブサイトのPHPパフォーマンスチューニングトラフィックの高いウェブサイトのPHPパフォーマンスチューニングMay 14, 2025 am 12:13 AM

thesecrettokeepingaphp-poweredwebsterunningsmootlyunderheavyloadinvolvesseveralkeystrategies:1)emform opcodecoduceSciptionexecutiontime、2)aatabasequerycachingwithiThing withiThistolessendavasoload、

PHPでの依存関係注射:初心者向けのコード例PHPでの依存関係注射:初心者向けのコード例May 14, 2025 am 12:08 AM

コードをより明確かつ維持しやすくするため、依存関係が関心(DI)に注意する必要があります。 1)DIは、クラスを切り離すことにより、よりモジュール化されます。2)テストとコードの柔軟性の利便性を向上させ、3)DIコンテナを使用して複雑な依存関係を管理しますが、パフォーマンスの影響と円形の依存関係に注意してください。

PHPパフォーマンス:アプリケーションを最適化することは可能ですか?PHPパフォーマンス:アプリケーションを最適化することは可能ですか?May 14, 2025 am 12:04 AM

はい、最適化されたAphPossibleandessention.1)CachingingusapCutoredatedAtabaseload.2)最適化、効率的なQueries、およびConnectionPooling.3)EnhcodeCodewithBultinctions、Avoididingglobalbariables、およびUsingopcodeching

PHPパフォーマンスの最適化:究極のガイドPHPパフォーマンスの最適化:究極のガイドMay 14, 2025 am 12:02 AM

keyStrategIestsoSificlyvoostphpappliceperformanceare:1)useopcodecachinglikeToreexecutiontime、2)最適化abaseの相互作用とプロペラインデックス、3)3)構成

PHP依存性噴射コンテナ:クイックスタートPHP依存性噴射コンテナ:クイックスタートMay 13, 2025 am 12:11 AM

aphpDependencyInjectionContaineriSATOULTAINATINAGECLASSDEPTINCIES、強化測定性、テスト可能性、および維持可能性。

PHPの依存噴射対サービスロケーターPHPの依存噴射対サービスロケーターMay 13, 2025 am 12:10 AM

SELECT DEPENTENCINGINOFCENT(DI)大規模なアプリケーションの場合、ServicElocatorは小さなプロジェクトまたはプロトタイプに適しています。 1)DIは、コンストラクターインジェクションを通じてコードのテスト可能性とモジュール性を改善します。 2)ServiceLocatorは、センター登録を通じてサービスを取得します。これは便利ですが、コードカップリングの増加につながる可能性があります。

PHPパフォーマンス最適化戦略。PHPパフォーマンス最適化戦略。May 13, 2025 am 12:06 AM

phpapplicationscanbeoptimizedforspeedandEfficiencyby:1)enabingopcacheinphp.ini、2)PreparedStatementswithpordatabasequeriesを使用して、3)LoopswithArray_filterandarray_mapfordataprocessing、4)の構成ngincasaSearverseproxy、5)

PHPメールの検証:電子メールが正しく送信されるようにしますPHPメールの検証:電子メールが正しく送信されるようにしますMay 13, 2025 am 12:06 AM

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

PhpStorm Mac バージョン

PhpStorm Mac バージョン

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

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。