当前位置: 首页 > 编程日记 > 正文

Linux下Postfix的配置和使用

Postfix为何物,详见:http://zh.wikipedia.org/wiki/Postfix

0.关于Postfix

postfix的产生是为了替代传统的sendmail.相较于sendmail,postfix在速度。性能和稳定性上都更胜一筹。如今眼下许多的主流邮件服务事实上都在採用postfix. 当我们须要一个轻量级的的邮件server是,postfix不失为一种选择。

1. postfix是免费的:
    postfix想要作用的范围是广大的Internet用户。试图影响大多数的Internet上的电子邮件系统,因此它是免费的。
2. 更快:
    postfix在性能上大约比sendmail快三倍。一部执行postfix的台式PC每天能够收发上百万封邮件。
3. 兼容性好:
    postfix是sendmail兼容的,从而使sendmail用户能够非常方便地迁移到postfix。Postfix支持/var[/spool]/mail、/etc/aliases、 NIS、和 ~/.forward 文件。
   4. 更健壮:
postfix被设计成在重负荷之下仍然能够正常工作。当系统执行超出了可用的内存或磁盘空间时,postfix会自己主动降低执行进程的数目。当处理的邮件数目增长时,postfix执行的进程不会跟着添加。
5. 更灵活:
postfix是由超过一打的小程序组成的,每一个程序完毕特定的功能。

你能够
通过配置文件设置每一个程序的执行參数。


   6. 安全性
postfix具有多层防御结构,能够有效地抵御恶意入侵者。如大多数的postfix程序能够执行在较低的权限之下,不能够通过网络訪问安全性相关的本地投递程序等等。

以下来介绍linux上怎样搭建和配置postfix服务:


1.关掉sendmail相关的全部服务,最好是直接卸载sendmail.

# service sendmail stop
# chkconfig sendmail off

#rpm -qa | grep sendmail | xargs rpm -e


2.安装postfix.

redhat6.0以上版本号应该是默认集成了postfix服务的,假如没有安装的话,能够手动安装。

rpm -qa | grep postifx (查看是否安装)

yum install postfix


3.安装完毕后。改动配置文件:/etc/postfix/main.cfg


vi /etc/postfix/main.cf


myhostname = sample.test.com  ← 设置系统的主机名


mydomain = test.com  ← 设置域名(我们将让此处设置将成为E-mail地址“@”后面的部分)


myorigin = $mydomain  ← 将发信地址“@”后面的部分设置为域名(非系统主机名)


inet_interfaces = all  ← 接受来自全部网络的请求


mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain  ← 指定发给本地邮件的域名


home_mailbox = Maildir/  ← 指定用户邮箱文件夹


<保存退出。>


4.为本机加入DNS server.

为什DNS Server?由于在邮件发送过程中。须要把邮件地址的domain地址转化成IP地址,再去发送给相应的收件人,这里涉及到DNS中的A记录和MX记录相关的知识,不熟悉的同学能够google或者百度 脑补一下 :-)


怎样加入DNS server呢,DNS server去哪里寻找?

vim /etc/resolv.conf 

加入例如以下行:

nameserver 8.8.8.8

nameserver 8.8.4.4


上面用的8.8.8.8/8.8.4.4是Google Free DNS server,当然还有非常多免费的DNS server供大家使用,能够google一下:-)


5.測试一下邮件是否可以发送成功:

命令行输入$: > echo "Mail Content" | mail -s "Mail Subject" xxxx@xxx.com

Note:if you see below warings after you run above command.

send-mail: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol
send-mail: warning: inet_protocols: configuring for IPv4 support only
postdrop: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol
postdrop: warning: inet_protocols: configuring for IPv4 support only

that means you don't have IPv6 configured in your OS's network stack, but your mailer (presumably postfix) is configured to use IPv6. Since there is no IPv6 for your mailer to use, it's warning you that it's only going to use IPv4.

To disable the waring messsage, go to /etc/postfix/main.cf and change from:

inet_protocols = all

to:

inet_protocols = ipv4

This will only use ipv4 and the warning message will go away.

You will have to issue a stop and start for postfix to register the change.

service postfix restart


6.查看log,确认邮件发送状态:

Postfix邮件的log位置是:/var/log/maillog

发送成功的话。会返回250和OK,也能够去自己的邮件client查收。


一切OK的话,那Postfix mail service应该就搭建成功了。


&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

另外一些实用的postfix维护命令。一遍日常的检測和维护:

mailq :会列出当前在postfix发送队列中的全部邮件

postsuper -d ALL:删除当前等待发送队列的全部邮件,包含发送失败的退信

当然还有非常多,就不一一列举了,大家能够网上搜索扩展。Good Luck!


7.Update Mail From sender

echo "do-not-reply@example.com   root@example.com" >> /etc/postfix/generic 
echo "smtp_generic_maps = hash:/etc/postfix/generic" >>/etc/postfix/main.cf 
postmap /etc/postfix/generic
service postfix restart

相关文章:

部分人说 Java 的性能已经达到甚至超过 C++,是真的吗?

好多Java程序员都说由于JIT技术的引入&#xff0c;Java的性能已经和C一样了&#xff0c;而且Java的开发效率极高&#xff0c;可以省下60%的时间。请问事实真的是这样吗&#xff1f;我平常也都在写这两个语言&#xff0c;但是因为开发的软件的复杂度不大&#xff0c;并没有感觉到…

Wiki 开源软件

Wiki 是一个协同著作平台或称开放编辑系统。所谓协同工作&#xff0c; 即它能够让浏览网页的人都能够去修订网页&#xff0c;其简介的 ... Wiki 是怎么做到的. Wiki 使用 了简化的语法&#xff0c;替代复杂的HTML&#xff0c;加上WEB 界面的编辑工具&#xff0c;降低内容维护的…

Android studio安装与调试

1.下载安装android studio 下载好之后安装好2.启动报错提示1&#xff09;进入刚安装的Android Studio目录下的bin目录。找到idea.properties文件&#xff0c;用文本编辑器打开。2&#xff09;在idea.properties文件末尾添加一行&#xff1a; disable.android.first.runtrue &am…

java的父类java.lang.object_根父类:java.lang.Object

1、根父类(1)Object类型是所有引用数据类型的超类&#xff0c;包括数组类型如果一个类没有显式的声明它的父类&#xff0c;那么它的父类就是Object。(2)Object类中的方法&#xff0c;会继承到所有类型的对象中&#xff0c;包括数组对象。即所有对象都可以调用Object类中声明的方…

spring cloud服务发现注解之@EnableDiscoveryClient与@EnableEurekaClient

在使用服务发现的时候提到了两种注解&#xff0c;一种为EnableDiscoveryClient,一种为EnableEurekaClient,用法上基本一致&#xff0c;今天就来讲下两者&#xff0c;下文是从stackoverflow上面找到的对这两者的解释&#xff1a;原文链接 There are multiple implementations of…

strust2自定义interceptor的基本方法及操作

需求&#xff1a;制作一个网站需要用户登陆后才能查看&#xff0c;即一个权限的问题 1.首先明确在用户没登陆前有两个Action请求是可以通过的&#xff0c;即注册和登陆。 2.创建拦截器&#xff0c;如UserLoginInterceptor.java&#xff0c;如下 public class UserLoginIntercep…

使用xdebug分析thinkphp框架函数调用图

开发中需要性能调优&#xff0c;使用xdebug分析thinkphp框架函数调用图。关于xdebug的安装参考这2篇 NetBeans配置Xdebug 远程调试PHP php扩展xdebug安装以及用kcachegrind系统分析1.安装xdebug 需要先去http://www.xdebug.org看看一些文档&#xff0c;xdebug作为php扩展安装 #…

java+script+当前日期_如何在JavaScript中获取当前日期?

如何在JavaScript中获取当前日期&#xff1f;#1楼您可以使用扩展了 Date对象的Date.js库&#xff0c;从而可以使用.today()方法。#2楼如果您想对日期格式进行更多的粒度控制&#xff0c;我强烈建议您查看一下momentjs。 很棒的图书馆-只有5KB。 http://momentjs.com/#3楼你可以…

java中的类修饰符、成员变量修饰符、方法修饰符。

类修饰符&#xff1a; public&#xff08;访问控制符&#xff09;&#xff0c;将一个类声明为公共类&#xff0c;他可以被任何对象访问&#xff0c;一个程序的主类必须是公共类。 abstract&#xff0c;将一个类声明为抽象类&#xff0c;没有实现的方法&#xff0c;需要子类提供…

Linux 系统挂载数据盘

Linux 系统挂载数据盘&#xff1a; 适用系统&#xff1a;Linux&#xff08;Redhat , CentOS&#xff0c;Debian&#xff0c;Ubuntu&#xff09;* Linux的云服务器数据盘未做分区和格式化&#xff0c;可以根据以下步骤进行分区以及格式化操作。下面的操作将会把数据盘划分为一个…

java 启动某个类_java – Spring Boot – 如何指定备用启动类? (多个入口点)

我想添加一个替代的入口点到我的Spring-Boot应用程序.我宁愿把它当成一个肥罐.这可能吗&#xff1f;根据他们的documentation,属性loader.main指定要启动的主类的名称.我尝试java -jar MyJar.jar –loader.main com.mycompany.AlternateMain,但是我的pom.xml中指定的start-cla…

WIN7 64位系统下,右下角的声音和电源图标不见的解决办法

近日&#xff0c;电脑突然出现任务栏右下角的声音和电源图标消失不见的问题&#xff0c;重启仍旧没有修复&#xff0c;后来找到了解决办法 解决办法&#xff1a; 1.CtrlShiftEsc键调出windows资源管理器。 2.找到进程中的explorer.exe进程并结束它。 3.在文件选项的新建任务选项…

创建Maven版Java工程

步骤&#xff1a; 创建成功后&#xff0c;如图&#xff1a; 转载于:https://www.cnblogs.com/zhzcode/p/9722902.html

Linux系统启动任务的写法

1.到/etc/rc.d目录# cd /etc/rc.d 2.修改rc.local # vim ./rc.local你之前是怎么启动nginx和php命令复制即可。例如&#xff1a;/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf/etc/init.d/php-fpm3.一定要给权限 # chmod x rc.local特别是喜欢下载到本地修…

java ee不能运行_Java9+移除 Java EE,导致我的 groovy 脚本无法运行

以以下这段代码为例Grab(org.jsoup:jsoup:1.10.1)import org.jsoup.JsoupJsoup.connect(https://v2ex.com).get().select(span.item_title > a).each {println it.text() : https://v2ex.com it.attr(href)}原本是 groovy2.5java8&#xff0c;可以正常跑&#xff0c;然后…

虚拟文件系统(VFS)

原文链接&#xff1a;http://www.orlion.ga/1008/ linux在不同的文件系统之上做了一个抽象层&#xff0c;使得文件、目录、读写访问等概念都成为抽象层概念&#xff0c;这个抽象层被称为虚拟文件系统(VFS)。 linux内核的VFS子系统如下: 每个进程在PCB(Process Control Block)中…

[学习笔记]矩阵乘法及其优化dp

1.定义&#xff1a; $c[i][j]\sum a[i][k]\times b[k][j]$ 所以矩阵乘法有条件&#xff0c;(n*m)*(m*p)n*p 即第一个矩阵的列数等于第二个矩阵的行数&#xff0c;否则没有意义。 2.结合律与分配率 矩阵乘法不一定任何时候都有交换律。因为交换后甚至不能保证第一个矩阵的列数等…

[LeetCode] Longest Substring with At Most K Distinct Characters 最多有K个不同字符的最长子串...

Given a string, find the length of the longest substring T that contains at most k distinct characters. For example, Given s “eceba” and k 2, T is "ece" which its length is 3. 这道题是之前那道Longest Substring with At Most Two Distinct Charac…

Linux创建指定用户特定指定目录权限

指定用户特定指定目录权限需要注意要指定好文件夹的权限&#xff0c;不然会导致nginx不能访问&#xff0c;最好是在root下建立目录&#xff0c;然后 # useradd -d /usr/www -m tempuser# passwd tempuser 回车输入密码 注意一定要带用户名&#xff0c;不然就是修改root!!!# c…

python asyncio教程_python中使用asyncio实现异步IO实例分析

1、说明Python实现异步IO非常简单&#xff0c;asyncio是Python 3.4版本引入的标准库&#xff0c;直接内置了对异步IO的支持。asyncio的编程模型就是一个消息循环。我们从asyncio模块中直接获取一个EventLoop的引用&#xff0c;然后把需要执行的协程扔到EventLoop中执行&#xf…

c语言初学 循环 的灵活使用小案例

上为流程图 上为代码实现&#xff0c;没有做优化。接下来是效果图。 时间2018.10.01 地点&#xff1a;广东轻工业职业技术学院复制代码 转载于:https://juejin.im/post/5bb1d98a5188255c9a77441a

常见maven引用

json-lib Could not find artifact net.sf.json-lib:json-lib:jar json-lib是需要区分jdk版本的&#xff0c;pom.xml中的配置应加上<classifier>标签&#xff0c;如用jdk15&#xff1a; <dependency><groupId>net.sf.json-lib</groupId><artifactId…

怎么控制table的大小java_如何查询Table占用空间的大小

Oracle和DB2都支持分区表&#xff0c;但是我们得知道什么样的表适合使用分区表技术&#xff0c;Oracle的官方建议是超过2G的Table就要使用分区表。下面来总结一下&#xff0c;各DB中如何获得这些大小信息&#xff1a;Oracle 10G中&#xff1a;查询出当前用户的表所占用的空间大…

王豪:HW265到“HW266”

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/82929609 每年的MSU的视频压缩评比报告都是多媒体的热点话题之一&#xff0c;在MSU 2018评比中&#xff0c;华为HW265在多项测试中排名…

Flex报错Error #2048: 安全沙箱冲突

FlexJPA架构&#xff0c;JPA程序迁移&#xff0c;从A服务器到B。其他一切没变&#xff0c;唯一变的就是IP。 前端Flex也就是swf报错Error #2048: 安全沙箱冲突:http://xxx.swf 不能从 xxx 加载数据 如下&#xff1a;其实原因就是需要在www网站的根目录放一个crossdomain.xml就可…

centos 默认mysql_centos改变mysql默认目录

centos改变mysql默认目录查看SELinux状态&#xff1a;如果未关闭&#xff0c;则要关闭1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态SELinux status: enabled2、getenforce ##也可以用这个命令检查关闭SELinux修改配置文件需要重启机器&#xff1a;…

如何免费(轻成本)在网上做推广宣传

最近有很多人在问我一个问题&#xff0c;如何少成本或者免费的在网上做推广宣传&#xff0c;这里我也总结一下&#xff0c;给各位一些建议和小方法&#xff0c;目前就以“BAT”和其他平台为例说明一下&#xff0c;通常来说都会以百度重技术、阿里重运营、腾讯重产品来形容“BAT…

BZOJ2631tree——LCT

题目描述 一棵n个点的树&#xff0c;每个点的初始权值为1。对于这棵树有q个操作&#xff0c;每个操作为以下四种操作之一&#xff1a; u v c&#xff1a;将u到v的路径上的点的权值都加上自然数c&#xff1b;- u1 v1 u2 v2&#xff1a;将树中原有的边(u1,v1)删除&#xff0c;加入…

MyBatis点滴积累

MyBatis在使用中不知不觉积累了很多经验1.#和$ MyBatis/Ibatis中#和$的区别1. #将传入的数据都当成一个字符串&#xff0c;会对自动传入的数据加一个双引号。如&#xff1a;order by #user_id#&#xff0c;如果传入的值是111,那么解析成sql时的值为order by "111", 如…

java可以调用python程序吗_我们可以从java调用python方法吗?

是的,那可以做到.通常,这将通过创建PythonInterpreter对象然后使用它来调用python类来完成.请考虑以下示例&#xff1a;Java&#xff1a;import org.python.core.PyInstance;import org.python.util.PythonInterpreter;public class InterpreterExample{PythonInterpreter inte…