詳細な手順を記載した電子メールを送信するためのフル機能の PHP コード
class Email {
//--- グローバル変数を設定します
var $mailTo = ""; // 受信者
var $mailCC = ""; // CC
var $mailBCC = ""; // 秘密の CC
var $mailFrom = ""; // 送信者
var $mailText = ""; format レター本文
var $mailHTML = ""; // HTML 形式のレター本文
var $mailAttachments = ""; // 添付ファイル
/* 関数 setTo($inAddress ): メールの処理に使用されるアドレスパラメータ $inAddress
1 つ以上の文字列、電子メール アドレス変数が含まれます。複数の電子メール アドレスを区切るにはカンマを使用します
デフォルトの戻り値は true です
**** *********** **************************************** ****/
関数 setTo ($inAddress){
//--explode() 関数を使用して、「,」に基づいてメール アドレスを分割します。
$addressArray =explode( ",",$inAddress ); - ループ
for($i=0;$i
//--すべての有効な電子メール アドレスは配列
$this->mailTo = implode($addressArray, "," ; Split
$addressArray =explode) に保存されます( ",",$inAddress);
//- ループ
for($i=0;$i
//--すべての正当な電子メール アドレスは配列
$this->mailCC = implode($ addressArray, ",");
return true; }
/************************************************
関数setCC($inAddress) は、カーボン コピー者の電子メール アドレスを設定します。
パラメータ $inAddress は、1 つ以上の電子メール アドレス、電子メール アドレス変数を含む文字列です。
複数の電子メール アドレスを区切るには、カンマを使用します。デフォルトの戻り値。値は true
******************************************** **** ****************/
function setBCC($inAddress){
// --explode() 関数を使用して分割します"," に基づく電子メール アドレス
$addressArray =explode( ",",$inAddress);
//-- ループを通じて電子メール アドレスの正当性をチェックします。
for($i=0; $i
return false ;
/ /-すべての有効な電子メール アドレスは配列
$this->mailBCC = implode($addressArray, ",");
return true;
/*************************************************
関数 setBCC($inAddress) は、シークレット カーボン コピー アドレスを設定します。パラメータ $inAddress は、1 つ以上の
メール アドレスを含む文字列です。複数のメール アドレスを区切るには、カンマを使用します。デフォルトの戻り値は 本当の
******************************************** **/
function setFrom($inAddress){
if($this->checkEmail($inAddress)){
$this->mailFrom = $inAddress;
return true; 🎜>} return false; }
/*************************************************** * *************
関数 setFrom($inAddress): 電子メールを含むように送信者アドレス パラメーター $inAddress を設定します
アドレス文字列のデフォルトの戻り値は true です
* *************************************/
function setSubject($inSubject){
if(strlen(trim($inSubject)) > 0){
$ this->mailSubject = ereg_replace( "n", "",$inSubject);
return true; }
/************************
関数 setSubject($inSubject) は、電子メールの件名パラメーター $inSubject を文字列に設定するために使用されます。
デフォルトの戻り値は true
*******************************************/
function setText( $inText){
if(strlen(trim($inText)) > 0){
$this->mailText = $inText;
return false; >}
/*************************************
関数 setHTML($inHTML) はメール本文パラメータ $inHTML を設定しますHTML 形式 HTML 形式です。
デフォルトの戻り値は true
***************************** **************/
function setHTML($inHTML){
if(strlen(trim($inHTML)) > 0){
$this->mailHTML = $ inHTML;
return true; }
return false; }
/**************************
関数 setAttachments($inAttachments) パラメータ $inAttachments
は、次の内容を含む文字列です。ディレクトリ (含めることもできます) 複数のファイルはカンマで区切られます。デフォルトの戻り値は true
************************** です。 ************** ********/
function setAttachments($inAttachments){
if(strlen(trim($inAttachments)) > 0){
$this->mailAttachments = $inAttachments;
return false; }
/********************************
関数 checkEmail($inAddress): この関数は以前にすでに呼び出しています。主に
メールアドレスの正当性をチェックするために使用されます
************************************ ** ***/
関数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){
/* たとえば、メールには次の内容が含まれます: Dear ~!UserName~,
Your address is ~!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)== "TEXT" )
return($this->setText($templateLineOut));
else if( strtoupper( $inFormat)= = "HTML" )
return($this->setHTML($templateLineOut));
} return false; >function getRandomBoundary( $offset = 0){
//--乱数生成
srand(time() $offset);
//--md5 でエンコードされた 32 ビット文字長の文字列を返します
return ( "----".(md5(rand()))); }
/*******************************************
関数 getRandomBoundary($offset) は、ランダム境界値
パラメータ $offset は整数です – マルチパイプライン呼び出しに使用され、md5() でエンコードされた文字列を返します
******************* ***********************/
function getContentType($inFileName){
//--削除path
$inFileName =basename($inFileName);
//--拡張子のないファイルを削除します
if(strrchr($inFileName, ".") == false){
return "application/オクテットストリーム";
}
//--提区扩展名并进行判断
$extension = strrchr($inFileName, ".");
switch($extension){
case ".gif": return "image/gif";
case ".gz": return "application/x-gzip";
case ".htm": return "text/html";
case ".html": return "text/html";
case ".jpg": return "image/jpeg";
case ".tar": return "application/x-tar";
case ".txt": return "text/plain";
case ".zip": return "application/zip";
デフォルト: "application/octet-stream" を返します。
}
return "application/octet-stream";
}
/**************************************************
関数 formatTextHeader テキスト コンテンツとテキスト ファイル ヘッダー
************************************** **** **************/
function formatTextHeader(){ $outTextHeader = "";
$outTextHeader .= "Content-Type: text/plain;
charset=us-asciin";
$outTextHeader .= "Content-Transfer-Encoding: 7bitnn";
$outTextHeader .= $this->mailText。 「ん」;
$outTextHeader を返す;
} /************************************************
関数formatHTMLHeader() は、メール本文の内容に HTML ファイルのヘッダーを追加します
********************************** ********/
function formatHTMLHeader(){
$outHTMLHeader = "";
$outHTMLHeader .= "Content-Type: text/html;
charset=us-asciin";
$outHTMLHeader .= "Content-Transfer-Encoding: 7bitnn";
$outHTMLHeader .= $this->mailHTML。 「ん」;
$outHTMLHeader を返す;
}
/****************************************
関数 formatAttachmentHeader($inFileLocation) は、次の添付ファイルを識別します。メール
*************************************/
function formatAttachmentHeader($inFileLocation){
$outAttachmentHeader = "";
//-- 上の関数 getContentType($inFileLocation) を取得して付属品の種類
$contentType = $this->getContentType($inFileLocation);
//--如果付属品は文本型则用标標準的7位编码
if(ereg( "text",$contentType)){
$outAttachmentHeader .= "Content-Type: ".$コンテンツタイプ。 ";n";
$outAttachmentHeader .= ' name="'.basename($inFileLocation). '"'。 「ん」;
$outAttachmentHeader .= "Content-Transfer-Encoding: 7bitn";
$outAttachmentHeader .= "Content-Disposition: attachment;n";
$outAttachmentHeader .= ' filename="'.basename($inFileLocation). '"'。 「ん」;
$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). '"'。 「ん」;
$outAttachmentHeader .= "Content-Transfer-Encoding: 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]。 「ん」;
}
} $outAttachmentHeader を返します。
}
/*******************************
関数 send() はメールの送信に使用され、送信に成功すると戻り値は true になります。
* ************************************/
function send(){
//--メールヘッダーを空に設定します
$mailHeader = ""
//--CC を追加しますPeople
if($this->mailCC != "")
$mailHeader .= "CC: ".$this->mailCC.
//-- シークレットコピーを追加
if($this->mailBCC != "")
$mailHeader .= "BCC: ".$this->mailBCC.
//--Add送信元
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();
//-MIME バージョンを設定します
$mailHeader .= "MIME バージョン: 1.0n";
$mailHeader .= "Content-Type: multipart/alternative;n"
$mailHeader .= ' border="'.$bodyBoundary. '"';
$mailHeader .= "nnn";
//--メール本文と境界を追加します
$mailHeader .= "-".$bodyBoundary.
$mailHeader .= $ textHeader;
$mailHeader .= "-".$bodyBoundary. "n";
//--HTML タグを追加します。
$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. '"'. "nn";
$mailHeader .= "これは MIME 形式のマルチパート メッセージです。n";
$mailHeader .= "--".$attachmentBoundary. " n";
$bodyBoundary = $this->getRandomBoundary(1);
$textHeader = $this->gt;formatTextHeader();
$htmlHeader = $this->formatHTMLHeader();
$mailHeader .= "MIME バージョン: 1.0n";
$mailHeader .= "Content-Type: multipart/alternative;n";
$mailHeader .= 'boundary='.$bodyBoundary。 '"';
$mailHeader .= "nnn";
$mailHeader .= "--".$bodyBoundary. "n";
$mailHeader .= $textHeader;
$mailHeader . = "--".$bodyBoundary. "n";
$htmlHeader;
$bodyBoundary.= "--"; -添付ファイルの値を取得します
$attachmentArray =explode( ",",$this->mailAttachments)
//--添付ファイルの数に基づいてループします
for($i=0;$) i< ;count($attachmentArray);$i ){
//--$mailHeader .= "n--".$attachmentBoundary."n";
//--添付ファイル情報
$ mailHeader .= $this->formatAttachmentHeader($attachmentArray[$i]);
}
$mailHeader .= "--".$attachmentBoundary.
return mail($this) - >mailTo,$this->mailSubject, "",$mailHeader);
}
}
?使用法:
>
コードをコピー
コードは次のとおりです:
<
「email.class」を含める
$mail->setTo("a@a.com") //受信者
$mail -> ; setCC("b@b.com,c@c.com") //CC
$mail-> setCC("d@b.com,e@c.com");
$mail->setFrom(“f@f.com”);//送信者
$mail->setSubject(“件名”); //件名
$ 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。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。
