1.下载class.phpmailer.php和class.smtp.php至公共库

2.编写发邮件的公共函数

 function sendMail($param) {
$config = C('THINK_EMAIL');
vendor('PHPMailer.class#phpmailer'); //从PHPMailer目录导class.phpmailer.php类文件
$mail = new PHPMailer(); //PHPMailer对象
$mail->CharSet = $config['EMAIL_CHARSET']; //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码
$mail->IsSMTP(); // 设定使用SMTP服务
$mail->SMTPDebug = ; // 关闭SMTP调试功能
// 1 = errors and messages
// 2 = messages only
$mail->SMTPAuth = $config['EMAIL_SMTPAUTH']; // 启用 SMTP 验证功能
$mail->Host = $config['SMTP_HOST']; // SMTP 服务器
$mail->Port = $config['SMTP_PORT']; // SMTP服务器的端口号
$mail->Username = $config['SMTP_USER']; // SMTP服务器用户名
$mail->Password = $config['SMTP_PASS']; // SMTP服务器密码
//$mail->SetFrom($config['FROM_EMAIL'], $config['FROM_NAME']);
$mail->SetFrom($param['mail_from'], $param['mail_name']);
$replyEmail = $config['REPLY_EMAIL'] ? $config['REPLY_EMAIL'] : $param['mail_from'];
$replyName = $config['REPLY_NAME'] ? $config['REPLY_NAME'] : $param['mail_name'];
$mail->AddReplyTo($replyEmail, $replyName); if (!empty($param['to'])) {
foreach ($param['to'] as $to) {
$mail->AddAddress($to['address'], $to['name']);
}
}
if (!empty($param['cc'])) {
foreach ($param['cc'] as $cc) {
$mail->addCC($cc['address'], $cc['name']);
}
}
// if (!empty($param['bcc'])) {
// foreach ($param['bcc'] as $bcc) {
// $mail->addBCC($bcc['address'], $bcc['name']);
// }
// } $param['body'] = $mail->WrapText($param['body'], );
$mail->Subject = $param['subject'];
if (!empty($param['body'])) {
$mail->MsgHTML($param['body']);
$mail->IsHTML($config['EMAIL_ISHTML']);
$mail->Body = $param['body'];
} // if (!empty($param['attachment'])) { // 添加附件
// foreach ($param['attachment'] as $file) {
// if (is_file($file['path'])) {
// $mail->AddAttachment($file['path'], $file['name']);
// }
// }
// } for($i=;$i<(count($param['attachment']));$i++){
$img=substr($param['attachment'][$i], strpos($param['attachment'][$i], ","));
$mail->AddStringAttachment(base64_decode($img),"attach".$i.".png","base64","image/png"); } //重发机制
$ret['errno'] = ;
$ret['msg'] = '';
if ($mail->Send()) {
return $ret;
} else {
if ($mail->Send()) {
return $ret;
} else {
$ret['errno'] = ;
$ret['msg'] = $mail->ErrorInfo;
return $ret;
}
}
// return $mail->Send() ? true : $mail->ErrorInfo;
}

3.SMTP配置函数

 // 配置邮件发送服务器
'THINK_EMAIL'=>array(
'SMTP_HOST' => 'localhost', //邮件发送SMTP服务器
'SMTP_PORT' => '',//SMTP服务器端口
'SMTP_USER' => 'admin', //SMTP服务器登陆用户名
'SMTP_PASS' => 'admin', //SMTP服务器登陆密码
'FROM_EMAIL' =>'发件箱@XX.com',
'FROM_NAME' =>'发件人姓名',
'REPLY_EMAIL' =>'',
'REPLY_NAME' =>'',
'EMAIL_CHARSET' =>'utf-8',
'EMAIL_ISHTML' => 'TRUE',
'EMAIL_SMTPAUTH' => '',
),

4.根据库中存的Base64获取图片信息,实际调用的为一个URL

public function getImage() {
$reportId = I('request.id');
$imgInfos = I('request.img');
header('Content-Type: image/png');
$repotModel = M('XXX');
$report = $repotModel->where(['id'=>$reportId])->find();
$base = explode(',', $report[$imgInfos])[];
$base = base64_decode($base);
echo $base;
die();
}
												

【原】SMTP发送邮件的更多相关文章

  1. php用smtp发送邮件

    php用smtp发送邮件 1.其实用smtp协议发送邮件很简单,用框架或者原生都可以,我们需要用到class.phpmailer.php 和class.smtp.php,大家可以去网上下载. 这是一个 ...

  2. phpmailer,smtp发送邮件实例(转)

    一,用phpmailer发送邮件 查看复制打印? <?php   include "class.phpmailer.php";    //包函邮件发送类      //邮件发 ...

  3. python通过SMTP发送邮件失败,报错505/535

    python通过SMTP发送邮件失败:错误1:smtplib.SMTPAuthenticationError: (550, b'User has no permission')    我们使用pyth ...

  4. linux 下 用phpmailer类smtp发送邮件始终不成功,提示:ERROR: Failed to co

    https://zhidao.baidu.com/question/509191264.html?fr=iks&word=PHPMailerSMTP+connect()+failed& ...

  5. python大法好——Python SMTP发送邮件

    Python SMTP发送邮件 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. py ...

  6. 运维监控-Zabbix Server 使用QQ SMTP发送邮件报警及定制报警内容

    运维监控-Zabbix Server 使用QQ SMTP发送邮件报警及定制报警内容 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客采用腾讯邮箱,想必大家都对QQ很了解,所以 ...

  7. gitlab配置通过smtp发送邮件(QQ exmail腾讯企业为例)

    gitlab配置通过smtp发送邮件(QQ exmail腾讯企业为例) 首先祭出官网文档链接:https://docs.gitlab.com/omnibus/settings/smtp.html 其实 ...

  8. PHP 通过带SSL的SMTP 发送邮件的处理

    客户端与SMTP服务器的通讯, 是通过固定的命令以及返回编号完成的. 发送Email, 需要经过的步骤有创建socket (区分带ssl, 还是不带ssl)执行命令, 并检查返回值是否与预期一致, 不 ...

  9. 阿里云服务器用smtp发送邮件返失败

    阿里云使用SMTP发送邮件失败,因为阿里云服务器屏蔽了25端口,所以发送不成功,解决办法改用587发送QQ邮件,且必须使用SSL,否则不成功. 经测试QQ的465,995不能使用. https://b ...

  10. SMTP发送邮件

    SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和email两个模块,email负责构造邮件, ...

随机推荐

  1. Linux操作系统改动PATH的方法

    1. 暂时改动: 使用export.比如#export PATH=$PATH:/etc/apache/bin 2. 针对用户的改动: vi ~/.bash_profile 增加:export PATH ...

  2. Java编程中经常用到代码

    http://www.toutiao.com/i6429293556086604289/

  3. linux下库的使用

    1 指定使用了什么库 -lstdc++ 这样链接的时候就会去指定的目录下找链接库,优先使用动态库.然后在elf文件中加入依赖关系,放在NEEDED中. 2 指定在哪里去找库 -Wl,-rpath,so ...

  4. go16---select

    package main /* Channel Channel 是 goroutine 沟通的桥梁, goroutine是通过通信来进行内存的共享, 而不是通过内存的共享来进行通信,通过Channel ...

  5. Codeforces Round #363 (Div. 2)E. LRU

    E. LRU time limit per test 2 seconds memory limit per test 256 megabytes input standard input output ...

  6. 【NOI 2007】 社交网络

    [题目链接] 点击打开链接 [算法] 首先,跑floyd,计算最短路和最短路径数 然后,计算答案,枚举k,s,t,若dist[s][k] + dist[k][t] = dist[s][t], 那么,点 ...

  7. Win10出现键盘未失灵,按下的键都是快捷键的问题

    某一天,WIN10开机.然后键盘莫名其妙的都无法正常使用,没有卡Window键,键盘也没有失灵,按下的键都成为了快捷键:终于在   https://zhidao.baidu.com/question/ ...

  8. bzoj 1643: [Usaco2007 Oct]Bessie's Secret Pasture 贝茜的秘密草坪【枚举】

    4维枚举平方小于10000的数,相加等于n则ans++ #include<iostream> #include<cstdio> using namespace std; con ...

  9. 【BZOJ4009_洛谷3242】[HNOI2015] 接水果(整体二分)

    题目: 洛谷 3242 分析: 明确题意:在一棵树上给定若干权值为 \(w\) 的路径 \((u,v)\) (盘子),每次给定 \((a,b)\) (水果),询问所有满足 \((u,v)\) 被 \( ...

  10. 解决:阿里云ECS上启动tomcat后,第一次访问时间特别长

    Re在ECS上启动tomcat后,第一次访问时间特别长      2017-04-25 10:16:04 INFO com.world.socket.ServerSocketListener  25- ...