教你如何配置Ubuntu用于高效、高质量的发送邮件

本文首发在: http://mengxi.me/how-to-setup-ubuntu-sendmail-to-deliver-email-fast-and-reliable/

在网站上线后,经常会遇到的一个需求就是发送邮件, 比如注册验证邮件,密码找回邮件等。我尝试过好多方法,其中最简单的方法就是花钱买别人的服务, 比如说国外的mailgun, 国内的sendcloud等, 相比而言, 他们的服务好,只是要花钱, mailgun一个月内小于1w封是免费的, sendcloud一天只能免费发200封, 很多时候这些数字很容易就超了。还有一种方法是注册一个免费邮件,然后通过这个免费邮箱提供的smtp服务发邮件。这种方法的缺点也很明显, 分信量照样限制, 而且,你还得设置发信间隔, 如果一分钟内你发送的量超过一个免费邮箱设定的限值, 你的邮件也发不出去。 所以, 就得找一个更好的, 最好就是能免费的发邮件的方法。

免费的发邮件的方法,现成的有一种, 就是sendmail。 今天要我教大家的也是如何配置,使得我们用sendmail发出的邮件也可以被邮件服务商认为是正常的邮件。

通常通过使用sendmail发出的邮件会有以下几个缺点

  1. 在邮件收到时,会显示www-data代发的字样,如图所示, 很容易被当做垃圾邮件,使得我们的发信质量大大降低
  2. 没有配置的好的情况下, 发送一封信的时间会很长,可达4-5秒的时间,简直不能忍受啊
  3. 被拒绝或者邮件被评为垃圾邮件的可能性很大

因为上面的问题,今天我就教大家如何通过一些配置和操作来使得我们用sendmail发出的邮件速度快, 接收率高。 ps: 本教程是基于 ubuntu 14

1. 先注册一个域名邮箱

要使我们的发信可受信任,就需要用我们的域名做发信箱, 比如说i#mengxi.me这样子的。设置这样的邮箱, 我推荐使用腾讯企业邮箱 http://exmail.qq.com.  虽然他们没有给我钱, ^_^。

可以注册一个免费试用账号:http://exmail.qq.com/signupfree#signup/free

具体的怎么注册,就按他们的提示信息走就好,然后 设置好你的域名解析项,就可以直接使用了。

2. 设置sendmail

先在ubuntu上运行命令 sudo apt-get install sendmail 安装sendmail

安装好sendmail后,再修改hosts文件

确保如下图所示在红圈里加入你的主机名,主机名可以通过命令hostname来获取

如果要修改主机名, 请使用下面的命令:

sudo vi /etc/hostname

然后, 重启网络服务

重启网络服务后,使用命令 sendmailconfig来配置sendmail, 在配置过程中, 对任何的询问都输入Y

到这里我们的sendmail就配置好了,但是,你觉得到这里就完了?不不不!没完, 我们还得设置我们的php

3. 设置php.ini

其实现在php已经能够通过mail函数正常发送邮件了,但是这个时候你发的邮件要很长时间才能到达你的收件箱,且, 邮件会被放到垃圾箱,会有这样的文字, “邮件由[email protected]代发

相信这也不是你所想要的,接下来我们就通过一个配置来,解决这个问题。

配置你的php.ini. 如果你使用的是nginx的话,配置文件在 /etc/php5/fpm/php.ini

如果是apache2的话,配置文件在/etc/php5/apache2/php.ini

我们找到sendmail_path这个key

在我圈出来的红框里写上你自己的邮箱, 最好是你自己的域名邮箱, 这样更加容易保证发信的成功率。

然后重启php5-fpm ( Nginx ) 或apache2

对于Nginx服务器:

sudo service php5-fpm restart

对于apache2

sudo service apache2 restart

好了, 你现在就可以快速、高效的发送不限数量的邮件了

本文为原创文章, 转载请注明出处, 谢谢!

时间: 2025-01-06 18:21:29

教你如何配置Ubuntu用于高效、高质量的发送邮件的相关文章

教你怎么编写一份高质量的测试报告

笔者在做软件测试过程中,最初对测试报告的认知就是一个用于结项的可有可无的形式文档,因此只是根据公司提供的模板依葫芦画瓢完成了事.但当开始参与ISO的评审.CMMI3等后,开始认识到软件测试报告远非一种形式,更多是一个测试活动的总结,项目是否结项的重要参考和依据.因此本文指导一些才从业不久的朋友怎么编写一份高质量的测试报告. 要有明确结论 纵观一些软件测试报告,可能测试人员基于规避自己的责任,或者迫于软件开发经理的压力,导致在报告中尽写一些模棱两可的结论.这样的测试报告是没有任何作用的,更多体现了

配置Ubuntu开发环境

前言 新买了一台ThinkPad E431,主要看中了硬盘500G和7200转/s的速度,因此准备从x220上把工作环境迁移到新买的笔记本上.为什么不要公司的电脑,是因为160G的ssd硬盘实在是太小了,而且我又不会用windows,刷机有需要windows上的工具,因此只能自己掏腰包再购置一台电脑了,奢侈啊! U盘安装Ubuntu13.10 之所以选择Ubuntu13.10,确实是因为Ubuntu14.04和Thinkpad E431有些不兼容,无奈之举.但是制作U盘启动的过程中,也遇到了Ul

配置ubuntu - tftp server服务器步骤

配置Ubuntu tftp服务的步骤: 1.安装相关软件包:Ubuntu tftp(服务端),tftp(客户端),xinetd sudo apt-get install tftpd tftp xinetd 2.建立配置文件 在/etc/xinetd.d/下建立一个配置文件tftp sudo vi tftp 在文件中输入以下内容: service tftp {socket_type = dgram protocol = udp wait = yes user = root server = /us

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置http+msyql+nfs高可用集群

  基于crm+hb_gui接口配置http+mysql+nfs高可用集群    基于crm+hb_gui接口配置ipvs高可用集群    基于crm+hb_gui+ldirectored接口配置ipvs高可用集群 

手动配置Ubuntu Linux系列3-缺省网关和主机名

上一篇讲到[原创]手动配置Ubuntu Linux的DHCP客户端,这里再说一下配置静态IP地址的方法. 仍然是编辑 interfaces文件. $ sudo vi /etc/network/interfaces eth0配置如下: auto eth0 address 192.168.1.123 netmask 255.255.255.0 gateway 192.168.1.1 保存退出后,使用重启networking命令让新配置生效. $ sudo /etc/init.d/networking

Redis安装、主从配置及两种高可用集群搭建

Redis安装.主从配置及两种高可用集群搭建 一.            准备 Kali Linux虚拟机 三台:192.168.154.129.192.168.154.130.192.168.154.131 用户名/密码:root/... ssh设置 修改sshd_config文件,命令为:vim /etc/ssh/sshd_config 将#PasswordAuthentication no的注释去掉,并且将NO修改为YES //kali中默认是yes 将PermitRootLogin wi

10个编程小技巧,教你写出高质量代码!

你会写代码吗你会写高质量代码吗你知道怎么写高质量代码吗不要一上来就开始写代码想清楚,再动手今天,分享10个写代码的小技巧教你写出高质量代码↓↓↓ 1.重构思维模式 不要一上来就开始写代码,要掌握尽量多的重构方法,重构思维方式,掌握重构并不一定是要对原来代码的重构,而是让自己在操作之前就想好该怎么去进行. 2.搞清需求再动手 看到需求之后,肯定多多少少会有一些问题,或是理解上的错误,或是功能实现上的问题,这时,必须要交流清楚,否则,后续将会有更多问题. 3.文档也要写 可能不少人觉得文档没人看,写

教你如何购买高质量外部链接

网络营销中,外链为王,内容为皇这句话在现在的SEO优化商场中经久不衰.外链发布和外链购买也成为站长常常谈到的论题,中网管家就外链选购简略的谈几点观念.关于新站来说沟通友情链接是很困难的,一般的新站别人都不会跟你沟通,更不要说高质量的啦.所以站长们之间就呈现了购买外链的买卖. pr值 Alexa排名首要仍是要看PR值.这个是最直观的看一个站的权重凹凸.而且PR做弊的可能性也会很?PR值低于2(包含2)的权重都不会太高.所以假设想购买单向外链的话.网络推广公司中网管家建议:至少是购买PR3以上的.P

编写高质量Python代码的59个有效方法

作者Brett Slatkin是 Google公司高级软件工程师.他是Google消费者调查项目的工程主管及联合创始人,曾从事Google App Engine的Python基础架构工作,并利用Python来管理众多的Google服务器.Slatkin也是PubSubHubbub协议的联合创始人,还用Python为Google实现了针对该协议的系统.他拥有哥伦比亚大学计算机工程专业学士学位. 精彩书评 "Slatkin所写的这本书,其每个条目(item)都是一项独立的教程,并包含它自己的源代码.