postfix日志每天发送情况统计

#!/usr/bin/perl
use POSIX qw(strftime);
my $mon = strftime("%b",localtime(time()-86400));
my $day = strftime("%d",localtime(time()-86400));
my $yesterday  = strftime("%Y%m%d",localtime(time()-86400));
my %success;
my %all;

my $dom  = shift || "";


my @f = </var/log/maillog*>;
my $last_file = (map { $_->[1] } sort { $b->[0] <=> $a->[0] } map  { [ (stat($_))[9], $_ ] } @f)[0];

my $pat_one = qr/$mon/s+$day.*?to=<(.*?/@(?:[^.]+/.)*$dom[^>]*)>.*?status=sent/x;
my $pat_two = qr{$mon/s+$day.*?to=<(.*?/@(?:[^.]+/.)*$dom[^>]*)>.*?}x;

open LOG,$last_file;
while(<LOG>) {
  if (/$pat_one/) {
    $success{$1}++;
  }
  if (/$pat_two/) {
    $all{$1}++;
  }
}
close LOG;

最后对 %success,%all操作,可以写到文本,可以记录到数据库等等

运行: xxx.pl domain_name  
例如:a.pl sohu.com
 
Postfix是一种开源的邮件服务器软件,它主要用于电子邮件的传输和路由。SMTP (Simple Mail Transfer Protocol) 是一种用于在网络上传输电子邮件的标准协议,通常在发送邮件的过程中被用到。在Postfix配置中,你可以通过以下几个步骤利用SMTP发送邮件: 1. **安装和配置Postfix**: 首先,在你的系统上安装Postfix,然后编辑`main.cf`文件(或者在Debian系Linux上可能是`/etc/postfix/main.cf`),设置基本的SMTP参数,如主机名、端口等。 ```shell smtpd_banner = $myhostname ESMTP $mail_name $(postconf -n smtp_version) myhostname = your_server_name smtpd_use_tls = yes smtpd_tls_security_level = may smtpd_sasl_auth_enable = yes ``` 2. **添加邮箱账号认证**:如果你需要使用身份验证(比如登录密码),你需要启用SMTP SASL并配置认证机制。这通常涉及到创建一个`.sasl_passwd`文件,并包含用户的邮箱地址和对应的密码。 ```shell username:password ``` 然后在`main.cf`里指定SASL机制: ```shell smtpd_sasl_type = plain smtpd_sasl_password_maps = hash:/etc/postfix/sasl_passwd ``` 3. **测试SMTP服务**:配置完成后,你可以使用命令行工具如`telnet`或专门的测试工具(如`postmap`) 来验证SMTP服务是否正常工作。 4. **发送邮件**:当实际发送邮件时,可以用MIME相关的命令(例如`mailx`, `mutt` 或者通过编程语言的SMTP库)配合Postfix的命令行工具`sendmail`或`smtp`完成。 注意:为了安全性和合规性,很多网络环境可能限制了直接的SMTP访问,你可能需要使用像SendGrid或Mailgun这样的第三方服务作为邮件投递通道。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值