Home > Article > Backend Development > Detailed explanation of usage examples of PHP mail sending class PHPMailer_PHP tutorial
This article describes the usage of PHP mail sending class PHPMailer and details its specific operation steps. Share it with everyone for your reference. The specific steps are as follows:
1. Install sendmail on the server
|
sudo apt-get install sendmail
|
1 |
sudo /etc/init.d/sendmail start |
1
|
sudo /etc/init.d/sendmail start
|
1 2 3 4 | [mail function] SMTP = localhost smtp_port = 25 sendmail_from = me@example.com |
4.Function sendMail function is as follows
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
/* Call PHPMailer to send email * @param String $receiver Recipient * @param String $sender Sender * @param String $sender_name If the sender name is empty, it will be replaced by the sender address * @param String $subject Email subject * @param String $content Email content * @param boolean $ishtml Whether to html email * @param Array $attachements attachments * @return boolean */ function sendMail($receiver, $sender, $sender_name, $subject, $content, $ishtml=true, $attachments=array()) { include_once "class-phpmailer.php";
if(empty($receiver) || empty($sender) || empty($subject) || empty($content)){ return false; }
$mail = new PHPMailer();
//$mail->IsSMTP(); //Send via smtp //$mail->Host = "smtp.gmail.com"; // SMTP server //$mail->Port = 465; // SMTP port //$mail->SMTPSecure = 'ssl'; // Encryption method //$mail->SMTPAuth = true; // Turn on SMTP authentication //$mail->Username = "username"; // Username //$mail->Password = "password"; // Password
$mail->IsMail(); // using PHP mail() function There may be a prompt that this email may not be sent by the following user
$mail->From = $sender; // Sender $mail->FromName = $sender_name; // Alias of the sender $mail->AddReplyTo($sender); // Replyer $mail->AddAddress($receiver); // Recipient
//Send as html if($ishtml){ $mail->IsHTML(true); }
// Send attachment if($attachments){ if(is_array($attachments)){ $send_attachments = array();
$tmp_attachments = array_slice($attachments,0,1); if(!is_array(array_pop($tmp_attachments))){ if(isset($attachments['path'])){ array_push($send_attachments, $attachments); }else{foreach($attachments as $attachment){ array_push($send_attachments, array('path'=>$attachment)); } } }else{ $send_attachments = $attachments; }
foreach($send_attachments as $attachment){ $attachment['name'] = isset($attachment['name'])? $attachment['name'] : null; $attachment['encoding'] = isset($attachment['encoding'])? $attachment['encoding'] : 'base64'; $attachment['type'] = isset($attachment['type'])? $attachment['type'] : 'application/octet-stream'; if(isset($attachment['path']) && file_exists($attachment['path'])){ $mail->AddAttachment($attachment['path'],$attachment['name'],$attachment['encoding'],$attachment['type']); } } }elseif(is_string($attachments)){ if(file_exists($attachments)){ $mail->AddAttachment($attachments); } } }
$mail->Subject = $subject; // Email subject $mail->Body = $content; // Email content return $mail->Send(); }
//DEMO example is as follows: $receiver = 'receiver@test.com'; $sender = 'sender@test.com'; $sender_name = 'sender name'; $subject = 'subject'; $content = 'content';
// Four formats are available $attachments = 'attachment1.jpg'; $attachments = array('path'=>'attachment1.jpg', 'name'=>'attachment1.jpg'); $attachments = array('attachment1.jpg','attachment2.jpg','attachment3.jpg'); $attachments = array( array('path'=>'attachment1.jpg', 'name'=>'attachment1.jpg'), array('path'=>'attachment2.jpg', 'name'=>'attachment2.jpg'), array('path'=>'attachment3.jpg', 'name'=>'attachment3.jpg'), ); $flag = sendMail($receiver, $sender, $sender_name, $subject, $content, true, $attachments); echo $flag; ?> |