#! /usr/bin/perl use strict; use Socket; use warnings; use Email::Simple; use DBI; use File::Copy; use Date::Parse; use DateTime; use Path::Tiny qw(path); use Mail::DKIM::Verifier; use Mail::SPF; use Encode; use utf8; open (MESSAGE, "< $ARGV[0]") || die "Couldn't open email $ARGV[0]\n"; undef $/; my $raw_email = <>; close MESSAGE; my $mail = Email::Simple->new($raw_email); my $return_path = $mail->header("Return-Path"); my $from_header = $mail->header("From"); my $ip = $mail->header("X-IP"); my $spf = &spf_check($ip,$return_path); sub spf_check { my ($ip, $domain); ($ip, $domain) = @_; $domain =~ s/<|>//g; $domain =~ s/^.*@//g; my $spf_server = Mail::SPF::Server->new(); my $spf_request = Mail::SPF::Request->new ( versions => [1,2], scope => 'mfrom', identity => $domain, ip_address => $ip ); my $return = $spf_server->process($spf_request); }