PHP クラス フル機能のメール送信 class_PHP チュートリアル
class Email {
//--- グローバル変数を設定します
var $mailTo = ""; // 受信者
var $mailBCC = " "; / CC
var $mailFrom = ""; // 送信者
var $mailSubject = ""; // テキスト形式のメッセージ本文
var $mailHTML = "; HTML 形式のレターの本文
var $mailAttachments = ""; // 添付ファイル
/* 関数 setTo($inAddress): 電子メールの処理に使用されるアドレス パラメーター $inAddress には、1 つ以上の文字列、電子メール アドレス変数が含まれます。複数の電子メール アドレスを区切るにはカンマを使用します
デフォルトの戻り値は true です
****************************** ****** ************************/
function setTo($inAddress){
//--「,」に従ってexplode()関数を使用します。メールアドレス
$addressArray =explode( ",",$inAddress);
//--ループを通じてメールアドレスの有効性をチェックします
for($i=0;$i
//--すべての有効な電子メール アドレスは配列に保存されます
$this-> ($addressArray, ",");
return true; }
/**************************************************
機能setCC($inAddress) は、カーボン コピー者の電子メール アドレスを設定します
パラメーター $inAddress は、1 つ以上の電子メール アドレスを含む文字列、電子メール アドレス変数です。
複数の電子メール アドレスを区切るにはカンマを使用します。デフォルトの戻り値は true です
**** ********************************************* ***** ********/
function setCC($inAddress){
//--explode() 関数を使用して、", " アドレスを分割します
$addressArray =explode( ",",$inAddress);
//--ループを通じて電子メール アドレスの有効性をチェックします
for($i=0;$i
$this->mailCC = implode ($addressArray, ",");
return true; }
/****************************************************
関数 setBCC($inAddress) は、シークレット カーボン コピー アドレス パラメーター $inAddress を 1 つ以上の
メール アドレスを含む文字列に設定します。メール アドレス変数。複数のメール アドレスを区切るにはカンマを使用します。デフォルトの戻り値は
true
**** *************************************/
function setBCC($inAddress){
//--explode() 関数を使用して、 ","
$addressArray =explode( ",",$inAddress);
//-- ループを通じて電子メール アドレスの有効性を確認します
for($i=0;$i
return false;
}
//--すべての正当な電子メール アドレスは配列に保存されます
$this->mailBCC = implode ($addressArray, ",");
return true
}
/*************************************************** * *************
関数 setFrom($inAddress): 送信者アドレス パラメーター $inAddress を電子メール アドレスを含む文字列に設定します。デフォルトの戻り値は true です
******。 * *******************************/
function setFrom($inAddress){
if($this->checkEmail($inAddress)){
$this ->mailFrom = $inAddress;
return true;
/*************************
関数 setSubject($inSubject) は、電子メールの件名パラメーター $inSubject を文字列に設定するために使用されます。
デフォルトの戻り値は次のとおりです。本当です
**** ***************************************/
function setSubject($inSubject){
if(strlen(trim($inSubject)) > 0) {
$this->mailSubject = ereg_replace( "n", "",$inSubject);
return false;
/*************************************************** *
関数 setText($inText) は、メール本文パラメータ $inText をテキスト形式で設定します。
******************* のデフォルトの戻り値。 *********** *****************/
function setText($inText) {
if(strlen(trim($inText)) > 0){
$this->mailText = $inText; }
return false;
/***************************************
関数 setHTML($inHTML) はメール本文パラメータ $inHTML を設定しますHTML 形式から HTML 形式へ、
デフォルトの戻り値は true です
*********************************** ********/
関数setHTML( $inHTML){
if(strlen(trim($inHTML)) > 0){
$this->mailHTML = $inHTML; }
/**********************
関数 setAttachments($inAttachments) は、電子メールの添付ファイル パラメーターを設定します。 $inAttachments は、ディレクトリを含む文字列であり、含めることもできます。複数のファイルの場合、カンマ区切りのデフォルトの戻り値は true です
************************************ *********** * */
function setAttachments($inAttachments){
if(strlen(trim($inAttachments)) > 0){
$this->mailAttachments = $inAttachments; }
return false; *********************************
関数 checkEmail($inAddress): この関数は以前にすでに呼び出しており、主に
使用されていますメールアドレスの正当性を確認するため
*******************************************/
function 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 は配置に使用されますメール本文
****** *************************************** *********** ***/
function loadTemplate($inFileLocation,$inHash,$inFormat){
/ * たとえば、メールには次の内容が含まれます: Dear ~!UserName~
Your address is ~!UserAddress~ */
//--「~!」は開始マーク、「~」は終了マーク
$templateDelim = "~ ";
$templateNameStart = "!";
//--これらの場所を見つけて置換します
$templateLineOut = "" //--一時ファイルを開きます
if($templateFile = fopen($; inFileLocation, " r")){
while(!feof($templateFile)){
$templateLine = fgets($templateFile,1000) =explode($templateDelim,$templateLine); 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)== "TEXT" )
return($this->setText($templateLineOut))
else if( strtoupper($inFormat)= = "HTML" )
return($this->setHTML($templateLineOut));
} return false;
/******************************************
関数 getRandomBoundary($offset) はランダムを返します境界値
パラメータ $offset は整数です – 複数のパイプラインの呼び出しは md5() でエンコードされた文字列を返します
*************************** * *****************/
function getRandomBoundary($offset = 0){
//- -乱数生成
srand(time()+$offset);
//--md5 でエンコードされた 32 ビット文字列を返す
return ( "----".(md5(rand())));
/ *********************************************
関数: getContentType($inFileName)添付ファイルの種類を決定するために使用されます
****************************************** ****** ***/
function getContentType($inFileName){
//-- パスを削除
$inFileName = Basename($inFileName);
//-- 拡張子なしでファイルを削除
if(strrchr($inFileName) , ".") == false){
return "application/octet-stream";
}
//--拡張子名を指定して判定します
$extension = strrchr($inFileName, "."); ($extension){
case ".gif": return "image/gif";
case ".gz": return "application/x-gzip";
case ".htm": return "text/html"; case ".html": "text/html" を返します。
case ".jpg": "image/jpeg" を返します。
case ".txt" を返します。 return "text/plain";
case ".zip": return "application/octet-stream";
return "application/octet-stream"; ***********************************************
関数 formatTextHeader は変換しますテキストの内容 テキストファイルのヘッダーを追加します
***************************************** ****** **********/
function formatTextHeader(){ $outTextHeader = "";
$outTextHeader .= "Content-Type: text/plain;
charset=us-asciin";
$outTextHeaderエンコーディング: 7bitnn";
$outTextHeader .= $this->mailText. "n";
return $outTextHeader;
} /**************************************************
機能formatHTMLHeader( )HTMLファイルのヘッダーをメール本文に追加します
************************************ ***** ****/
function formatHTMLHeader(){
$outHTMLHeader = "";
$outHTMLHeader .= "Content-Type: text/html;
charset=us-asciin";
$outHTMLHeader .= "Content-Transfer-Encoding: 7bitnn";
$outHTMLHeader .= $this->mailHTML "n ";
return $outHTMLHeader;
}
/***************************************
関数 formatAttachmentHeader($inFileLocation) はメール内の添付ファイルを識別します
** * *****************************/
function formatAttachmentHeader($inFileLocation){
$outAttachmentHeader = "";
//-- 上記の関数 getContentType($inFileLocation) を使用して、添付ファイルの種類
$contentType = $this->getContentType($inFileLocation);
//--添付ファイルがテキストの場合、標準の 7 ビット エンコーディングを使用します
if( "text",$contentType){
$ outAttachmentHeader .= "コンテンツ タイプ: ".$contentType. ";n";
$outAttachmentHeader .= ' name="'.basename($inFileLocation). '"' .= "コンテンツ- Transfer-Encoding: 7bitn";
$outAttachmentHeader .= "Content-Disposition:attachment;n";
$outAttachmentHeader .= ' filename="'.basename($inFileLocation) '"'. "nn";
$ textFile = fopen($inFileLocation, "r");
while(!feof($textFile)){
$outAttachmentHeader .= fgets($textFile,1000);
//--ファイルを閉じます fclose($textFile);
$outAttachmentHeader .= "n";
}
//--非テキスト形式は 64 ビットでエンコードされます
else{ $outAttachmentHeader .= "Content-Type : ".$contentType. ";n";
$outAttachmentHeader .= ' name="'.basename($inFileLocation). '"'. "n";
$outAttachmentHeader .= "コンテンツ転送エンコーディング:base64n" ;
$outAttachmentHeader .= "Content-Disposition:attachment;n";
$outAttachmentHeader .= ' filename="'.basename($inFileLocation). '"'
//-- 外部コマンドを呼び出します。 uuencode で続行します エンコーディング
exec( "uuencode -m $inFileLocation nothing_out",$returnArray);
for ($i = 1; $i$outAttachmentHeader .= $returnArray [$i ]. "n";
}
} return $outAttachmentHeader;
/**********************************
関数 send() はメールの送信に使用され、戻り値は true です。送信は成功しました
***** *****************************/
//--メールヘッダーを空に設定します
$mailHeader = " ";
/ /-CC 人物を追加
if($this->mailCC != "")
$mailHeader .= "CC: ".$this->mailCC. "n";
//--秘密のコピーを追加 誰かに送信します
if($this->mailBCC != "")
$mailHeader .= "BCC: ".$this->mailBCC. "n";
//--送信者を追加します
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(); formatHTMLHeader();
//--MIME バージョンを設定します
$mailHeader .= "MIME-Version: 1.0n";
$mailHeader .= "Content-Type: multipart/alternative;n"; border="'.$bodyBoundary. '"';
$mailHeader .= "nnn";
$mailHeader .= "-".$bodyBoundary
$; mailHeader .= $textHeader;
$mailHeader .= "--".$bodyBoundary. "n";
$mailHeader .= $htmlHeader .= "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. "n";
$bodyBoundary = $this->getRandomBoundary(1);
$textHeader = $this- >formatTextHeader();
$htmlHeader = $this->formatHTMLHeader();
$mailHeader .= "MIME バージョン: 1.0n";
$mailHeader .= "Content-Type: multipart/alternative;n";
$mailHeader .= 'boundary="'.$bodyBoundary. '"';
$mailHeader .= "--".$bodyBoundary .= $ textHeader;
$mailHeader .= "-".$bodyBoundary.
$mailHeader .= "--".$bodyBoundary; -添付ファイルの値を取得します
$attachmentArray =explode( ",",$this->mailAttachments);
//--添付ファイルの数に応じてループします
for($i=0;$i
//--添付ファイル情報
$mailHeader .= $this->formatAttachmentHeader($attachmentArray) [ $i]);
}
$mailHeader .= "--".$attachmentBoundary. "--";
return mail($this->mailTo,$this->mailSubject, "",$mailHeader) ;
}
return false;
}
}
?>
$mail->setTo("a@a.com") //受信者
$mail-> c@c.com"); //Cc
$mail-> ; setCC("d@b.com,e@c.com"); //シークレットCC
$mail->setFrom("f@f .com"); //Sender
$mail->setSubject("Subject"); //件名
$mail->setText("Text Format");//送信テキスト形式は変数にすることもできます
$mail->setHTML("html format");// 送信する HTML 形式は変数にすることもできます
$mail->setAttachments("c:a.jpg"); // 添付ファイルを追加するには、パスを次のように指定する必要があります。指定
$mail->send(); //メールを送信します

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用して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で後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

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