検索
ホームページphp教程php手册詳細な手順を記載した電子メールを送信するためのフル機能の PHP コード

詳細な手順を記載した電子メールを送信するためのフル機能の PHP コード

Jun 13, 2016 pm 12:27 PM
phpVAコード全体的な状況送信変数親切設定詳しい説明する郵便

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;$icheckEmail ($addressArray[$i])=] を通じてメール アドレスの有効性をチェックします。 =false) return false; }
//--すべての有効な電子メール アドレスは配列
$this->mailTo = implode($addressArray, "," ; Split
$addressArray =explode) に保存されます( ",",$inAddress);
//- ループ
for($i=0;$icheckEmail($addressArray[$i])==false) return false; }
//--すべての正当な電子メール アドレスは配列
$this->mailCC = implode($ addressArray, ",");
return true; }
/************************************************
関数setCC($inAddress) は、カーボン コピー者の電子メール アドレスを設定します。
パラメータ $inAddress は、1 つ以上の電子メール アドレス、電子メール アドレス変数を含む文字列です。
複数の電子メール アドレスを区切るには、カンマを使用します。デフォルトの戻り値。値は true
******************************************** **** ****************/
function setBCC($inAddress){
// --explode() 関数を使用して分割します"," に基づく電子メール アドレス
$addressArray =explode( ",",$inAddress);
//-- ループを通じて電子メール アドレスの正当性をチェックします。
for($i=0; $i{ if($this->checkEmail($addressArray[$i])==false)
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() //メールを送信します
?>

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

Video Face Swap

Video Face Swap

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

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SublimeText3 中国語版

SublimeText3 中国語版

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

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター