centos7 利用 php 进行邮件发送方法

本文介绍如何在 CentOS7 系统中利用 PHP 的 mail() 函数结合 phpMailer 库,实现通过 TLS 或 SMTP 并进行用户密码验证的方式发送邮件。针对 PHP 默认不支持密码验证的问题,提供了解决方案和代码示例。

目的

利用 php 网页实现邮件通知
支持 tls 或者 smtp 带用户密码校验进行邮件发送

问题

默认下 php 支持通过 sendmail 命令, 通过 smtpserver 进行邮件发送
但 php mail() 函数默认不提供用户密码验证方法

解决方法

php required

yum install -y  epel-release
yum install -y  php-PHPMailer

利用上面这个库可以使用默认 PHP rpm 完成发送邮件功能

假如你使用编译方法运行 php , 那么可以到 官方 git 下载最新版本软件 (编译 php + php-phpMailer 略)

php 代码 example:

<?php

require "/usr/share/php/PHPMailer/class.phpmailer.php";
require "/usr/share/php/PHPMailer/class.smtp.php";

header("Content-Type: text/html;charset=utf-8");

        function mailtest() {
                $mail = new PHPMailer;
                $mail->setFrom('warning@xxxx.com ');                  <-  等于 From: 
                $mail->addAddress('terry.zeng@xxxxx.com');            <- 等于 To:
                $mail->Subject = "[告警] : title  and 中文测试";
                $mail->Body = "hi 邮件内容 <br><table><tr><th>header</th></tr><tr><td>中文测试1</td></tr><tr><td>创建客户端</td></tr></table>";
                // $mail->CharSet = PHPMailer::CHARSET_UTF8;    (新版本语法)
                $mail->isHTML(true);
                $mail->isSMTP();
                $mail->SMTPDebug = SMTP::DEBUG_SERVER;
                $mail->CharSet = 'utf-8';                            <- rpm 版本语法
                //$mail->SMTPSecure = 'smtp';
                $mail->Host = 'smtp.mailserveraddresscom';
                $mail->SMTPAuth = true;
                $mail->Port = 25;
                $mail->Username = 'mailuser';
                $mail->Password = 'mailpasswd';
                if(!$mail->send()) {
                        echo 'Email is not sent.';
                        echo 'Email error: ' . $mail->ErrorInfo;
                } else {
                        echo 'Email has been sent.';
                }
        }

        mailtest();

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Terry_Tsang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值