程序发送email

使用程序发送电子邮件总结:

一,PHP

  • 使用简单函数发送(mail,error_log)
mail("liangxifeng@163.com","title","content","From:<test@gmail.com>");
error_log("content", 1, "liangxifeng@163.com", "From: 547096390@qq.com\n");
  • 可以看出error_log的发送邮件功能也是基于mail函数的
  • 这里有另外一种方式可以实现,就是使用php发送邮件类,demo地址,这种方式各个qq/gmail等收件箱都均可以收到。

二,shell

在使用shell的mail命令发送邮件前,需要安装sendmail这个Linux下的基本邮件组件:

  • ubuntu:sudo apt-get install mailutils
  • Centos:yum install sendmail
echo "This is a test mail." | mail -s "test" liangxifeng@163.com
  • 以上使用简单函数都是向 liangxifeng@163.com邮箱发送邮件,并可以发送成功,但是我尝试了qq和gmail邮箱均无法发送成功,估计人家的反垃圾邮件技术比较好,没有经过域名认证的ip地址smtp服务器基本就是不收。也可能是sendmail服务器的dns没有设置好。

三,通过修改mail配置文件可以使用外部SMTP服务器来发送邮件。

  • 以网易邮箱为例。
vim  /etc/mail.rc 追加如下文字
set from=liangxifeng@163.com  #from是发送的邮件地址
set smtp=smtp.163.com  #smtp是发生的外部smtp服务器的地址
set smtp-auth-user=liangxifeng  #外部smtp服务器认证的用户名
set smtp-auth-password=aaaa #外部smtp服务器认证的用户密码
set smtp-auth=login #邮件认证的方式
  • 配置后执行如下命令:
cat context.txt | mail -s "tes the smtp mail"  547096391@qq.com
//547096391@qq.com是收件人地址,content.txt里面是邮件正文.

注意:

  • php的电子邮件发送,也是基于linux系统底层的sendmail组件,所以要想使用php的mail函数发送电子邮件,就必须在对应的linux服务器中安装sendmail组件。
  • 如果linux系统已经成功安装sendmail组件,shell命令可以成功发送邮件,可是php依然无法发送,解决办法:vim /usr/local/php/php.ini
sendmail_path = /usr/sbin/sendmail -t -i
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容