设为首页收藏本站

ZMX - IT技术交流论坛 - 无限Perfect,追求梦想 - itzmx.com

 找回密码
 注册论坛

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

用百度帐号登录

只需两步,快速登录

搜索
查看: 269|回复: 0

linux PHP函数发送邮件为什么在垃圾介绍 发信软件

[复制链接]
 成长值: 25675

签到天数: 3182 天

[LV.Master]伴坛终老

发表于 2020/2/25 21:54 | 显示全部楼层 |阅读模式 |Google Chrome 80.0.3987.122|Windows 10
天涯海角搜一下: 百度 谷歌 360 搜狗 有道 雅虎 必应 即刻
Linux下发送邮件的软件主要是sendmail和postfix

sendmail是老牌的邮件软件,知名度非常高。
postfix是sendmail的升级进化版,主要配置文件是/etc/postfix/main.cf,配置文件的注释非常全,选项基本是自解释的。

PHP的mail函数
作为PHP开发中,了解sendmail/postfix还是有点用处。mail函数默认使用sendmail/postfix发送邮件,了解相关配置,就能知道为啥能工作/为啥不能工作。
简单来说,要让PHP自带的mail函数正常工作,需要做以下事情:
申请域名,在DNS解析中设置MX记录,指向本机(非合法主机(FQDN, Fully Qualified Domain Name)发送的所有邮件都会被当做垃圾邮件直接拦截丢弃或者进入垃圾箱);
安装sendmail/postfix,配置软件并运行;
配置防火墙、安全组,放行25端口。
发送效率低、配置麻烦以及vps云服务器的端口封锁,是使用mail函数的最大阻碍。

PHP发送邮件
首先,在项目中引入Swift Mailer:
  1. composer require "swiftmailer/swiftmailer:^6.0"
复制代码

然后准备好邮件内容(以文本文件为例,不带附件):
  1. $message = (new Swift_Message('Test Message'))
  2.   ->setFrom(['admin@baidu.com' => 'admin'])
  3.   ->setTo(['no-reply@baidu.com'])
  4.   ->setBody('Hello, this is a test mail from Swift Mailer!');
复制代码

接着,设置好邮件传输方式(使用Gmail邮箱):
  1. $transport = (new Swift_SmtpTransport('smtp.gmail.com', 465, 'ssl'))
  2.   ->setUsername('username')
  3.   ->setPassword('password');
复制代码

或者使用sendmail/postfix的方式(不推荐):
  1. $transport = (new Swift_SendmailTransport());
复制代码

最后,使用transport构造mailer实例,成功发送邮件:
  1. $mailer = new Swift_Mailer($transport);
  2. $result = $mailer->send($message);
复制代码


php发信没有ip过白名单信誉度最好不要搞,百分百进垃圾箱
也就是上面所说的(设置MX记录,指向本机(非合法主机(FQDN, Fully Qualified Domain Name))
例如WordPress,php发信使用的是sendmail软件,如果你用的postfix那么也是发不出的
php发信要设置好系统和php.ini,具体百度下,如果发不出去都有php报错

评分

参与人数 1樱币 +2 收起 理由
寻宝人2339 + 2 加油

查看全部评分

欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册论坛 新浪微博账号登陆用百度帐号登录

本版积分规则

手机版|Archiver|Mail me|网站地图|IT技术交流论坛 ( 闽ICP备13013206号-7 )

GMT+8, 2020/9/19 13:52 , Processed in 0.142608 second(s), 22 queries , MemCache On.

Powered by itzmx! X3.4

© 2011- sakura

快速回复 返回顶部 返回列表