


Full-featured PHP send email class, full-featured send email_PHP tutorial
PHP is a fully functional email class that can send emails
The function of the following class is very powerful. It can not only send htmlFormat emails, you can also send attachments
class Email {
//---Set global variables
var $mailTo = ""; // Recipient
var $mailCC = ""; // Cc
var $mailBCC = ""; // Secret Cc
var $mailFrom = ""; // Sender
var $mailSubject = ""; // Subject
var $mailText = ""; // Text format letter body
var $mailHTML = ""; // HTML format letter body
var $mailAttachments = ""; // Attachment
/* Function setTo($inAddress): The address parameter $inAddress used to process emails.
contains one or more strings and email address variables. Use commas to separate multiple email addresses.
The default return value is true
************************************************ *****************/
function setTo($inAddress){
//--Use the explode() function to split the email address based on ","
$addressArray = explode( ",",$inAddress);
//-Check the validity of the email address through loop
for($i=0;$i
//--All legal email addresses are stored in the array
$this ->mailTo = implode($addressArray, ",");
return true; }
/************************************************
Function setCC($inAddress) sets the email address of the carbon copy person
The parameter $inAddress is a string containing one or more email addresses, an email address variable,
Use commas to separate multiple email addresses. The default return value is true
************************************************ ****************/
function setCC($inAddress){
//-- Use the explode() function to split the email address according to ","
$addressArray = explode( ",",$inAddress);
//--Check the legality of the email address through a loop
for($i=0;$i
//- -All legal email addresses are stored in the array
$this->mailCC = implode($addressArray, ",");
return true; }
/***************************************************
Function setBCC($inAddress) sets the secret carbon copy address parameter $inAddress to a string containing one or more
email addresses, the email address variable, use commas to separate multiple email addresses, the default return value is
true
*******************************************/
function setBCC($inAddress){
//--Use the explode() function to split the email address according to ","
$addressArray = explode( ",",$inAddress);
// --Check the validity of the email address through a loop
for($i=0;$i
return false;
}
//--All legal email addresses are stored in the array
$this->mailBCC = implode($addressArray, " ,");
return true;
}
/***************************************************** *************
Function setFrom($inAddress): Set the sender address parameter $inAddress to the string containing the email
address. The default return value is true
* **************************************/
function setFrom($inAddress){
if($this->checkEmail($inAddress) ){
$this->mailFrom = $inAddress;
return true;
} return false; }
/************************
The function setSubject($inSubject) is used to set the email subject parameter $inSubject to a string.
The default return value is true
*******************************************/
function setSubject($inSubject){
if(strlen(trim($inSubject)) > 0){
$this->mailSubject = ereg_replace( "n", "",$inSubject);
return true; }
return false; }
/*****************************************************
The function setText($inText) sets the email body parameter in text format. $inText is the text content by default.
The default return value is true.
************************ ***********************/
function setText($inText){
if(strlen(trim($inText)) > 0){
$this- >mailText = $inText;
return true; }
return false;
}
/**************************************
Function setHTML($inHTML) sets the email body parameter $inHTML in html format It is in html format,
The default return value is true
*****************************************/
function setHTML($inHTML){
if( strlen(trim($inHTML)) > 0){
$this->mailHTML = $inHTML;
return true; }
return false; }
/************************
The function setAttachments($inAttachments) sets the email attachment parameter $inAttachments
is a string containing the directory, which can also be included Multiple files are separated by commas. The default return value is true
**************************************** ********/
function setAttachments($inAttachments){
if(strlen(trim($inAttachments)) > 0){
$this->mailAttachments = $inAttachments;
return true; }
return false; }
/*********************************
Function checkEmail($inAddress): We have already called this function before. Mainly
used to check the legitimacy of email addresses
********************************** *****/
function checkEmail($inAddress){
return (ereg( "^[^@ ] @([a-zA-Z0-9-] .) ([a-zA-Z0-9-]{2}|net|com|gov|mil|org| edu|int)$",$inAddress));
}
/*************************************************
The function loadTemplate($inFileLocation,$inHash,$inFormat) reads the temporary file and
replaces the useless information. The parameter $inFileLocation is used to locate the directory of the file.
$inHash is used to store the temporary value. $inFormat is used to place the email body.
************************************************ ***********/
function loadTemplate($inFileLocation,$inHash,$inFormat){
/* For example, email It contains the following content: Dear ~!UserName~,
Your address is ~!UserAddress~ */
//--"~!" is the start mark and "~" is the end mark
$templateDelim = "~";
$templateNameStart = "!";
//--Find these places and replace them
$templateLineOut = ""; //--Open the temporary file
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){
//--Replace the corresponding value
$hashName = substr($templateLineArray[$i],1);
//-- Replace the corresponding value
$templateLineArray[$i] = ereg_replace($hashName,(string)$inHash[$hashName],$hashName);
}
}
//--Output characters Array and overlay
$templateLineOut .= implode($templateLineArray, "");
} //--Close the file fclose($templateFile);
//--Set the body format (text or html)
if( strtoupper($inFormat)== "TEXT" )
return($this->setText($templateLineOut));
else if( strtoupper($inFormat)== "HTML" )
return($this->setHTML($templateLineOut));
} return false;
}
/*****************************************
The function getRandomBoundary($offset) returns a Random boundary value
The parameter $offset is an integer – the call for multiple pipelines returns an md5() encoded string
********************** **********************/
function getRandomBoundary($offset = 0) {
//--Random number generation
srand(time() $offset);
//--Return a md5 encoded 32-bit character string
return ( "--- -".(md5(rand()))); }
/********************************************
Function: getContentType($ inFileName) is used to determine the type of attachment
****************************************** *****/
function getContentType($inFileName){
//--Remove path
$inFileName = basename($inFileName);
//--Remove files without extension
if(strrchr($inFileName, ".") == false){
return "application/octet-stream";
}
//--Provide the extension name and make a judgment
$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";
default: return "application/octet-stream";
}
return "application/ octet-stream";
}
/**************************************************
Function formatTextHeader Text content plus text file header
****************************************** **************/
function formatTextHeader(){ $outTextHeader = "";
$outTextHeader .= "Content-Type: text/plain;
charset=us-asciin";
$outTextHeader .= "Content-Transfer-Encoding: 7bitnn";
$outTextHeader .= $this->mailText. "n";
return $outTextHeader;
} /************************************************
Function formatHTMLHeader() adds the html file header to the email body content
********************************** ********/
function formatHTMLHeader(){
$outHTMLHeader = "" ;
$outHTMLHeader .= "Content-Type: text/html;
charset=us-asciin";
$outHTMLHeader .= "Content-Transfer-Encoding: 7bitnn";
$outHTMLHeader . = $this->mailHTML. "n";
return $outHTMLHeader;
}
/**************************************
The function formatAttachmentHeader($inFileLocation) identifies the attachment in the email
*************************************/
function formatAttachmentHeader($inFileLocation){
$outAttachmentHeader = "";
//--Use the above function getContentType($inFileLocation) to get the attachment type
$contentType = $this->getContentType($inFileLocation);
//--If the attachment is Text type uses standard 7-bit encoding
if(ereg( "text",$contentType)){
$outAttachmentHeader .= "Content-Type: ".$contentType. ";n";
$outAttachmentHeader .= ' name="'.basename($inFileLocation). '"'. "n";
$outAttachmentHeader .= "Content-Transfer-Encoding: 7bitn";
$outAttachmentHeader .= "Content -Disposition: attachment;n";
$outAttachmentHeader .= ' filename="'.basename($inFileLocation). '"'. "nn";
$textFile = fopen($inFileLocation, "r") ;
while(!feof($textFile)){
$outAttachmentHeader .= fgets($textFile,1000);
}
//--Close the file fclose($textFile);
$outAttachmentHeader .= "n";
}
//--Non-text formats are encoded in 64 bits
else{ $outAttachmentHeader .= "Content-Type: ".$contentType. "; n";
$outAttachmentHeader .= ' name="'.basename($inFileLocation). '"'. "n";
$outAttachmentHeader .= "Content-Transfer-Encoding: base64n";
$outAttachmentHeader .= "Content-Disposition: attachment;n";
$outAttachmentHeader .= ' filename="'.basename($inFileLocation). '"'. "nn";
//--Call external Command uuencode to encode
exec( "uuencode -m $inFileLocation nothing_out",$returnArray);
for ($i = 1; $i $outAttachmentHeader .= $returnArray[$i]. "n";
}
} return $outAttachmentHeader;
}
/********************************
The function send() is used to send emails, and the return value is true if sent successfully
* *************************************/
function send(){
//--Set the email header to be empty
$mailHeader = "";
//--Add a carbon copy person
if($this->mailCC != "")
$mailHeader .= "CC: ".$this->mailCC. "n";
//--Add secret carbon copy person
if($this->mailBCC != "")
$mailHeader .= "BCC: ".$this->mailBCC. "n";
//--Add sender
if($this->mailFrom != "")
$mailHeader .= "FROM: ".$this->mailFrom. "n";
//----------------------- ----Email format--------------------------------
//-Text format
if( $this->mailText != "" && $this->mailHTML == "" && $this->mailAttachments == ""){
return mail($this->mailTo,$this- >mailSubject,$this->mailText,$mailHeader);
}
//-html or text format
else if($this->mailText != "" && $this- >mailHTML != "" && $this->mailAttachments == ""){
$bodyBoundary = $this->getRandomBoundary();
$textHeader = $this->formatTextHeader();
$htmlHeader = $this->formatHTMLHeader();
//--Set MIME-version
$mailHeader .= "MIME-Version: 1.0n";
$mailHeader .= " Content-Type: multipart/alternative;n";
$mailHeader .= ' boundary="'.$bodyBoundary. '"';
$mailHeader .= "nnn";
//--Add Mail body and boundaries
$mailHeader .= "--".$bodyBoundary. "n";
$mailHeader .= $textHeader;
$mailHeader .= "--".$bodyBoundary. "n" ";
//--Add html tag
$mailHeader .= $htmlHeader;
$mailHeader .= "n--".$bodyBoundary. "--";
//-- Send mail
return mail($this->mailTo,$this->mailSubject, "",$mailHeader);
}
//--Text plus html plus attachment
else if ($this->mailText != "" && $this->mailHTML != "" && $this->mailAttachments != ""){
$attachmentBoundary = $this->getRandomBoundary();
$mailHeader .= "Content-Type: multipart/mixed;n";
$mailHeader .= ' boundary="'.$attachmentBoundary. '"'. "nn";
$mailHeader .= "This is a multi-part message in MIME format.n";
$mailHeader .= "--".$attachmentBoundary. "n";
$bodyBoundary = $this->getRandomBoundary(1);
$textHeader = $this->formatTextHeader();
$htmlHeader = $this->formatHTMLHeader();
$mailHeader .= "MIME-Version: 1.0n";
$mailHeader .= "Content-Type: multipart/alternative;n";
$mailHeader .= ' boundary="'.$bodyBoundary. '"';
$mailHeader .= "nnn";
$mailHeader .= "--".$bodyBoundary. "n";
$mailHeader .= $textHeader;
$mailHeader .= "--".$bodyBoundary. "n";
$mailHeader .= $htmlHeader;
$mailHeader .= "n--".$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;
}
}
?>
使用方法:
Include “email.class”
$mail->setTo("a@a.com"); //收件人
$mail-> setCC("b@b.com,c@c.com"); //抄送
$mail-> setCC("d@b.com,e@c.com"); //秘密抄送
$mail->setFrom(“f@f.com”);//发件人
$mail->setSubject(“主题”) ; //主题
$mail->setText(“文本格式”) ;//发送文本格式也可以是变量
$mail->setHTML(“html格式”) ;//发送html格式也可以是变量
$mail->setAttachments(“c:a.jpg”) ;//添加附件,需表明路径
$mail->send(); //发送邮件
转载自:http://www.aspnetjia.com

PHP is used to build dynamic websites, and its core functions include: 1. Generate dynamic content and generate web pages in real time by connecting with the database; 2. Process user interaction and form submissions, verify inputs and respond to operations; 3. Manage sessions and user authentication to provide a personalized experience; 4. Optimize performance and follow best practices to improve website efficiency and security.

PHP uses MySQLi and PDO extensions to interact in database operations and server-side logic processing, and processes server-side logic through functions such as session management. 1) Use MySQLi or PDO to connect to the database and execute SQL queries. 2) Handle HTTP requests and user status through session management and other functions. 3) Use transactions to ensure the atomicity of database operations. 4) Prevent SQL injection, use exception handling and closing connections for debugging. 5) Optimize performance through indexing and cache, write highly readable code and perform error handling.

Using preprocessing statements and PDO in PHP can effectively prevent SQL injection attacks. 1) Use PDO to connect to the database and set the error mode. 2) Create preprocessing statements through the prepare method and pass data using placeholders and execute methods. 3) Process query results and ensure the security and performance of the code.

PHP and Python have their own advantages and disadvantages, and the choice depends on project needs and personal preferences. 1.PHP is suitable for rapid development and maintenance of large-scale web applications. 2. Python dominates the field of data science and machine learning.

PHP is widely used in e-commerce, content management systems and API development. 1) E-commerce: used for shopping cart function and payment processing. 2) Content management system: used for dynamic content generation and user management. 3) API development: used for RESTful API development and API security. Through performance optimization and best practices, the efficiency and maintainability of PHP applications are improved.

PHP makes it easy to create interactive web content. 1) Dynamically generate content by embedding HTML and display it in real time based on user input or database data. 2) Process form submission and generate dynamic output to ensure that htmlspecialchars is used to prevent XSS. 3) Use MySQL to create a user registration system, and use password_hash and preprocessing statements to enhance security. Mastering these techniques will improve the efficiency of web development.

PHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.

PHP is still dynamic and still occupies an important position in the field of modern programming. 1) PHP's simplicity and powerful community support make it widely used in web development; 2) Its flexibility and stability make it outstanding in handling web forms, database operations and file processing; 3) PHP is constantly evolving and optimizing, suitable for beginners and experienced developers.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 Chinese version
Chinese version, very easy to use

SublimeText3 Mac version
God-level code editing software (SublimeText3)

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

Dreamweaver Mac version
Visual web development tools

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool