end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

「/usr/sbin/sendmail -t」のダミーを perlで書く

Postfixの用意までは行いたくない。以下の程度で十分かと思います。

#!/usr/bin/perl
use utf8;
use strict;
use warnings;

my $OUT_FILE = "/tmp/sendmail_dummy";

main(@ARGV);

sub main {
    my ($cmd_opt) = @_;

    if ($cmd_opt ne "-t"){
        print STDERR "USAGE: $0 -t < STDIN  or  echo 'HOGE'| $0 -t\n";
        return;
    }
    
    my @stdin_lines = <STDIN>;

    open(my $fh, ">>", $OUT_FILE) or die "fail open() $OUT_FILE $!";
    print $fh @stdin_lines;
    print $fh "\n\n";
    close($fh) or die "fail close() $OUT_FILE $!";
}

上記に対するテスト実施は以下の通り

$ vi ./test_sendmail.sh

#!/usr/bin/bash

/usr/bin/cat << _EOM_ | /sbin/sendmail -t
From: test-from@example.com
To: test-to@example.com
Subject: TEST SENDMAIL SUBJECT

TEST SENDMAIL SUBJECT
MESSAGE BODY
_EOM_