用think PHP5.1发送邮件,为方便项目前后台都可调用,我这边写在了common.php里(application/common.php)
先切换到项目根目录,然后composer安装sdk,
composer require phpmailer/phpmailer
然后在common.php里引入:
use PHPMailer\PHPMailer\PHPMailer;
/**
* @function sendEmail
* @intro 发送邮件(带附件)
* @param $email 接收邮箱
* @param $title 邮件标题
* @param $from_name 发件人
* @param $content 邮件内容
* @param $attachmentFile 附件 (string | array)
* @return array
*/
function sendEmail($email='', $title='', $from_name='', $content='', $attachmentFile=''){
date_default_timezone_set('PRC');
//Create a new PHPMailer instance
$mail = new PHPMailer;
//Tell PHPMailer to use SMTP
$mail->isSMTP();
//Enable SMTP debugging
// 0 = off (for production use)
// 1 = client messages
// 2 = client and server messages
$mail->SMTPDebug = 0;
//Ask for HTML-friendly debug output
$mail->Debugoutput = 'html';
//charset
$mail->CharSet = 'UTF-8';
//Set the hostname of the mail server
$mail->Host = "";//请填写你的邮箱服务器
//Set the SMTP port number - likely to be 25, 465 or 587
$mail->Port = 25;//端口号
//Whether to use SMTP authentication
$mail->SMTPAuth = true;
//Username to use for SMTP authentication
$mail->Username = "";//发件邮箱用户名
//Password to use for SMTP authentication
$mail->Password = "";//发件邮箱密码
//Set who the message is to be sent from
$mail->setFrom('发件邮箱用户名', $from_name);
//Set an alternative reply-to address(用户直接回复邮件的地址)
$mail->addReplyTo('发件邮箱用户名', $from_name);
//Set who the message is to be sent to
$mail->addAddress($email);
//Set the subject line
$mail->Subject = $title;
//Read an HTML message body from an external file, convert referenced images to embedded,
//convert HTML into a basic plain-text alternative body
$mail->msgHTML($content);
//Replace the plain text body with one created manually
$mail->AltBody = '';
if(is_array($attachmentFile)){
for ($i=0; $i < count($attachmentFile); $i++) {
$mail->addAttachment($attachmentFile[$i],'Filename'.$i);//这里可以是多维数组,然后循环附件的文件和名称
}
}else{
if($attachmentFile !=''){
//Attach an image file
$mail->addAttachment($attachmentFile, 'Filename');
}
}
//send the message, check for errors
if (!$mail->send()) {
$status = 0;
$data = "邮件发送失败" . $mail->ErrorInfo;;
} else {
$status = 1;
$data = "邮件发送成功";
}
return ['status'=>$status,'data'=>$data];//返回值(可选)
}
在需要发邮件的地方调用这个方法:
sendEmail($email, '邮件标题', '发件人简称', $content, Env::get('root_path').'public/uploads/file/'.$file, 'file.jpg');
vue2 Implicit conversion from float int loses precision php8Implicit Mysql8新增用户,mysql8配置权限,mysql8配置,mysql8配置文件 Linux命令,scp,scp命令,Linux复制 git commit git add centos git 搭建FTP,Linux FTP,禁止FTP登录ssh 上传文件,阿里云OSS上传,文件上传到OSS,OSS文件上传,OSS上传 微信支付,微信支付V3,PHP微信支付,微信nativePay支付,微信jsapi支付 微信支付,微信支付V3,PHP微信支付 bootstrap4 modal, lavarel The subversion command line tools are no longer provided by Xcode. 银联支付,tp5.1银联支付 支付宝即时到账,PHP支付宝 system libzip must be upgraded to version >= 0.11 CMake 3.0.2 or higher is required