小编Qua*_*unk的帖子

Postfix:将电子邮件的副本传递给脚本,但将原始副本传递到邮箱

其实很简单:我想将所有收到的电子邮件传递给一个 PHP 脚本,但只是作为副本,原始电子邮件仍应照常发送到邮箱。

我似乎无法让它工作。我试过以下

(1)创建一个catchall-alias(mysql):

@mydomain.tld   pipe@mydomain.tld
Run Code Online (Sandbox Code Playgroud)

(2)在/etc/postfix/mailpipe.cf中创建regex-transport映射(基本意思是:适用于mydomain.tld的所有邮件)

/.*@mydomain\.tld/   mailpipe:
Run Code Online (Sandbox Code Playgroud)

(3)将其全部集成在 /etc/postfix/main.cf 中:

transport_maps = ... regexp:/etc/postfix/mailpipe.cf
virtual_alias_maps = proxy:mysql:/etc/postfix/....
Run Code Online (Sandbox Code Playgroud)

(4)将传输添加到/etc/postfix/master.cf:

mailpipe   unix  -       n       n       -       -       pipe
  flags=FR user=localuser argv=/path/to/my/script.php
  ${nexthop} ${user}
Run Code Online (Sandbox Code Playgroud)

剧本:

#!/usr/bin/php -q
<?php
  $file = '/home/localuser/pipe/log.log';
  $input = file_get_contents('php://input');
  file_put_contents($file, $input, FILE_APPEND | LOCK_EX);
Run Code Online (Sandbox Code Playgroud)

所以设置似乎有效,脚本在传入的电子邮件中被命中,但它$input是空的(尽管适用于任何其他字符串)。正在处理电子邮件,然后将其删除/丢弃。所以这是我的两个问题:

  1. 如何从脚本访问电子邮件的内容?

  2. 如何防止电子邮件在处理后被丢弃?有没有办法像往常一样将一个副本传递到收件箱,另一个传递给脚本进行处理?

email scripting postfix pipe sieve

3
推荐指数
1
解决办法
6836
查看次数

我应该关心“服务器证书不包含与服务器名称匹配的 ID”吗?

我有以下配置:

<VirtualHost 1.2.3.4:443>
    ServerName mydomain.com
    ServerAlias www.mydomain.com

    ...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我想www.mydomain.com成为主域,但我也希望用户能够只输入mydomain.com,然后我将它们重定向到www. 所以证书名称是www.mydomain.com. 但是随着我在启动 apache 时不断收到这个警告:

AH01909: mydomain.com:443:0 服务器证书不包含与服务器名称匹配的 ID

不过一切正常,我在 ssllabs.com 上也获得了 A 级评价。但是这个警告仍然困扰着我,我想知道我是否在这里遗漏了什么?

显然证书的 CN 与服务器名称不匹配,但它仍然匹配别名。

这是“不好的做法”还是有另一种处理方法不会产生此警告?我应该关心它吗?最后,这只是一个警告,可能会出错,但事实并非如此。或者这会导致客户端出现问题吗?

到目前为止,一切对我来说都很好,用户也没有抱怨,所以我想一切正常。

ssl ssl-certificate apache-2.4

3
推荐指数
1
解决办法
4万
查看次数

标签 统计

apache-2.4 ×1

email ×1

pipe ×1

postfix ×1

scripting ×1

sieve ×1

ssl ×1

ssl-certificate ×1