Explications connexes sur PHPMailer - Classe de transport de courrier électronique PHP

jacklove
Libérer: 2023-03-31 13:50:01
original
2977 Les gens l'ont consulté

Installer sendmail sur le serveur

sudo apt-get install sendmail
Copier après la connexion

Démarrer sendmail

sudo /etc/init.d/sendmail start
Copier après la connexion

Modifier php.ini

[mail function]
SMTP = localhost
smtp_port = 25
sendmail_from = me@example.com
Copier après la connexion

Fonction sendMail

<?php
/* 调用PHPMailer发送电邮
* @param  String  $receiver     收件人
* @param  String  $sender       发件人
* @param  String  $sender_name  发件人名称如为空则用发件人地址代替
* @param  String  $subject      邮件主题
* @param  String  $content      邮件内容
* @param  boolean $ishtml       是否html电邮
* @param  Array   $attachements 附件
* @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();                // 经smtp发送 
	//$mail->Host = "smtp.gmail.com"; // SMTP 服务器
	//$mail->Port = 465;              // SMTP 端口
	//$mail->SMTPSecure = &#39;ssl&#39;;      // 加密方式
	//$mail->SMTPAuth = true;         // 打开SMTP认证
	//$mail->Username = "username";   // 用户名
	//$mail->Password = "password";   // 密码
	$mail->IsMail();                  // using PHP mail() function 有可能會出現這封郵件可能不是由以下使用者所傳送的提示
			
	$mail->From = $sender;            // 发信人  
	$mail->FromName = $sender_name;   // 发信人别名  
	$mail->AddReplyTo($sender);       // 回覆人
	$mail->AddAddress($receiver);     // 收信人  
	// 以html方式发送
	if($ishtml){
		$mail->IsHTML(true);
	}
	// 发送附件
	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[&#39;path&#39;])){
					array_push($send_attachments, $attachments);					
				}else{
					foreach($attachments as $attachment){
						array_push($send_attachments, array(&#39;path&#39;=>$attachment));
					}
				}
			}else{
				$send_attachments = $attachments;
			}
			foreach($send_attachments as $attachment){
				$attachment[&#39;name&#39;] = isset($attachment[&#39;name&#39;])? $attachment[&#39;name&#39;] : null;
				$attachment[&#39;encoding&#39;] = isset($attachment[&#39;encoding&#39;])? $attachment[&#39;encoding&#39;] : &#39;base64&#39;;
				$attachment[&#39;type&#39;] = isset($attachment[&#39;type&#39;])? $attachment[&#39;type&#39;] : &#39;application/octet-stream&#39;;
				if(isset($attachment[&#39;path&#39;]) && file_exists($attachment[&#39;path&#39;])){
					$mail->AddAttachment($attachment[&#39;path&#39;],$attachment[&#39;name&#39;],$attachment[&#39;encoding&#39;],$attachment[&#39;type&#39;]);
				}
			}
		}elseif(is_string($attachments)){
			if(file_exists($attachments)){
				$mail->AddAttachment($attachments);
			}
		}
	}
	$mail->Subject  = $subject;	// 邮件标题
	$mail->Body     = $content;	// 邮件內容
	return $mail->Send();  
}
// DEMO
$receiver = &#39;receiver@test.com&#39;;
$sender = &#39;sender@test.com&#39;;
$sender_name = &#39;sender name&#39;;
$subject = &#39;subjecct&#39;;
$content = &#39;content&#39;;
// 四種格式都可以
$attachments = &#39;attachment1.jpg&#39;;
$attachments = array(&#39;path&#39;=>&#39;attachment1.jpg&#39;, &#39;name&#39;=>&#39;附件1.jpg&#39;);
$attachments = array(&#39;attachment1.jpg&#39;,&#39;attachment2.jpg&#39;,&#39;attachment3.jpg&#39;);
$attachments = array(
	array(&#39;path&#39;=>&#39;attachment1.jpg&#39;, &#39;name&#39;=>&#39;附件1.jpg&#39;),
	array(&#39;path&#39;=>&#39;attachment2.jpg&#39;, &#39;name&#39;=>&#39;附件2.jpg&#39;),
	array(&#39;path&#39;=>&#39;attachment3.jpg&#39;, &#39;name&#39;=>&#39;附件3.jpg&#39;),
);
$flag = sendMail($receiver, $sender, $sender_name, $subject, $content, true, $attachments);
echo $flag;
?>
Copier après la connexion

Cet article explique PHPMailer - Classe de transport de courrier électronique PHP, veuillez faire attention au site Web chinois php pour plus de contenu connexe.

Recommandations associées :

Compréhension de la traversée PHP des dossiers, des classes de fichiers et des classes de traitement

Explication de RewriteCond et 13 applications mod_rewrite Exemples de connaissances liées au pseudo-statique Apache

Comprendre la différence entre proxy direct et proxy inverse

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!