Postfix接收邮件后转向运行特定的脚本

本文主要參考:http://serverfault.com/questions/258469/how-to-configure-postfix-to-pipe-all-incoming-email-to-a-script

????在Postfix邮件服务器搭建过程中。有时候会希望Postfix接收到邮件之后。可以转向运行特定的脚本。与之相相似的实际功能有,邮件自己主动回复程序、邮件内容过滤等。这个的功能可以通过配置Postfix来实现。本文将介绍一种当 Postfix 接收到邮件之后,转向运行特定 shell 脚本的方法。

????本文中所使用的方法的详细解决思路是:通过改动传输表(transport_maps),使得Postfix接收到邮件之后,不直接转递给 MDA。而转投给特定的脚本程序。

????详细来说。须要进行五个步骤:

1. 创建一个传输表。用于说明符合什么样要求的邮件会被转递

2. 将传输表编译成为 Postfix 熟悉的数据格式

3. 在 Postfix 的 master.cf 文件里设置一个服务,告诉Postfix。须要将邮件转递到特定的脚本

4. 在 Postfix 的 main.cf 中设置 transport_maps 參量,告诉Postfix 须要使用到传输表

????以下是每一步的详细操作

1、创建文件 /etc/postfix/transport ,告诉postfix 以下域名收到的邮件将启动名为 mytransportname 的服务

mydomain.com mytransportname:

2、将该文件编译成为 Postfix 识别的格式

$ sudo postmap /etc/postfix/transport

3、在 /etc/postfix/master.cf 中添加传输服务:

mytransportname unix - n n - - pipe

flags=FR user=localuser argv=/path/to/my/script.py

${nexthop} ${user}

当中,flags 为服务标识;user 为username(注意权限问题);argv为脚本程序的地址。在这里,此服务须要运行的脚本是 /path/to/my/script.py

4、最后。在 /etc/postfix/main.cf 中,将传输表的配置添加进去

transport_maps = hash:/etc/postfix/transport

????完毕以上步骤之后,重新启动Postfix就可以(service postfix restart)。注意,脚本必须具有可运行权限,而且 user 用户有权限运行该脚本。

时间: 2024-10-10 23:16:46

Postfix接收邮件后转向运行特定的脚本的相关文章

Postfix接收邮件后转向执行特定的脚本

本文主要参考:http://serverfault.com/questions/258469/how-to-configure-postfix-to-pipe-all-incoming-email-to-a-script ????在Postfix邮件服务器搭建过程中,有时候会希望Postfix接收到邮件之后,能够转向执行特定的脚本.与之相类似的实际功能有,邮件自动回复程序.邮件内容过滤等.这个的功能可以通过配置Postfix来实现.本文将介绍一种当 Postfix 接收到邮件之后,转向执行特定

Oracle 11g安装GI后,运行roothas.pl脚本报错libcap.so.1找不到

环境:RHEL6.4 + Oracle 11.2.0.3问题:需求是文件系统迁移到ASM,在安装GI后,运行roothas.pl脚本报错 1.运行root.sh后,按提示运行roothas.pl报错: [[email protected] mnt]# /u01/app/11.2.0/grid/crs/install/roothas.pl Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_p

linux(CentOS)之postfix服务器Dovecot接收邮件

一.安装Dovecot来接收邮件,使用rpm方式安装完dovecot软件以后,需要经过一些修改才能正常使用. 首先,直接使用系统的yum源安装dovecot yum install dovecot 修改配置文件 1. 在/etc/dovecot/dovecot.conf中修改 protocols = imap pop3 lmtp    支持的协议 login_trusted_networks = 192.168.10.0/24   //指定允许登录的网段地址 这样在使用outlook客户端登录的

Exchange用户更改密码后,手机用户使用旧密码仍然可以接收邮件

最近有两个同事说他们的用户密码更改密码后,手机竟然不提示新密码仍然能够接收邮件,刚开始觉得匪夷所思,并没有在意,后面搜索下互联网,发现网上有同样的人遇到过该问题,查了下KB,还真找到一个,具体说是IIS中的一个机制,会缓存用户通过基本身份验证的凭据,时间为15分钟(用outlook MAPI或者windows 集成身份验证的不受该影响). http://support.microsoft.com/kb/267568

Exchange 2016发送给内部中继服务器邮件后收件人显示winmail.dat

1.前戏          最近遇到一个问题,Exchange邮箱发送一个带附件的邮件给内部的另外一个非Exchange邮件系统邮箱的用户邮件,收件人收到邮件后不使用Outlook客户端打开邮件时显示为winmail.dat:如果收件人使用Outlook打开则可以正常查看邮件附件. 2.了解这个问题之前我先介绍一下环境情况 现场环境为WIndows Server 2012 R2+Exchange 2016.AD的域名为contoso.local,Exchange的接收域为:contoso.loc

JavaMail实现收发邮件——(三)接收邮件

JavaMail接收邮件和发送邮件基本一致,大体上是把Transport换成了Store.不过和发送相比,难点是对接收到的邮件进行解析,不然看起来就跟乱码一样.之所以解析这一块难,就在于一封未知的邮件你不知道它的结构是怎样的,因此需要我们通过判断一步步解析.对于这一点,我也不是很清楚,所以下面我就瞎写一点基础的. 一.首先连接POP3服务器获取邮件 (1)创建Properties对象以及Session对象 // 创建一个有具体连接信息的Properties对象   Properties prop

C#接收邮件附件

接收邮件类 using System; using System.Net.Sockets; using System.Net; using System.Security.Cryptography; using System.IO; using System.Data; namespace Common { /// <summary> /// 获取邮件的类 /// </summary> public class POP3 { private string m_Address = &

exchange2010 禁止邮箱接收邮件

今天,一个朋友问我,exchange如何禁止用户接收邮件,想来知道的有两个方案,一个方案是,设置邮箱的指定发件人,另外一个方案是通过exchange的传输规则来设置 方案一 选择需要设置的收件人,右键打开属性 切换到邮件流设置,选择邮件传递限制 我们要求的是不接收任何人发送的邮件,所以在"仅限以下列表中的发件人"把自己添加进去即可 使用任意邮箱对此邮箱投递时会提示您无权发送至此邮箱 方案二 在集线器传输选项,打开传输规则,在空白处右键新建传输规则 根据需求填写名称.注释 在条件选项中选

怎么设置使用iPhone邮件应用发送/接收邮件-QQ邮箱

以qq邮件为例,怎么在iPhone设备上使用邮件发送以及接收邮件.1.首先需要登录QQ邮箱,QQ邮箱登录地址:https://mail.qq.com/cgi-bin/loginpage 2.登录成功后点击名称下面的“设置“选项 3.在邮箱设置中点击”账户“ 4.下拉到中间部分 有一栏 ”POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务“,点击开启POP3/SMTP服务 和 IMAP/SMTP服务,有些qq可以使用安全扫一扫来开启,但有些qq只能使用手机发送短信方式