uuencode 및 음소거를 사용하지 않고 어떻게 이메일을 보낼 수 있나요?

uuencode 및 음소거를 사용하지 않고 어떻게 이메일을 보낼 수 있나요?

uuencode 및 MUTE 명령을 사용하지 않고 unix/AiX에서 첨부 파일을 보낼 수 있습니까?

첨부 파일 없이 이메일을 제대로 보내는 Perl 스크립트를 작성할 수 있습니다. PDF 첨부 파일을 보내는 Perl 코드를 얻을 수 있습니까?

#!/usr/bin/perl
$to = '[email protected]';
$from = '[email protected]';
$subject = 'Email from QA server';
$message = 'This is test email sent by Perl Script1';

open(MAIL, "|/usr/sbin/sendmail -t");

# Email Header
print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n\n";
# Email Body
print MAIL $message;

close(MAIL);
print "Email Sent Successfully\n";

답변1

첨부 파일이 포함된 이메일을 보내는 bash 기능은 다음과 같습니다. 나는 이 글을 Linux 시스템용으로 작성했으므로 해당 base64프로그램을 사용할 수 있을 것으로 예상합니다.

########################################################################
# usage: echo "$body" | email_attachment -f from -t to -c cc -s subject -a attachment_filename
# the -a option can be specified multiple times
email_attachment() {
    local from to cc subject attachments=()
    local OPTIND OPTARG
    local body=$( cat )
    local boundary="_====-boundary-${$}-$(date +%Y%m%d%H%M%S)-====_"

    while getopts f:t:c:s:a: opt; do
        case $opt in
            f) from=$OPTARG ;;
            t) to=$OPTARG ;;
            c) cc=$OPTARG ;;
            s) subject=$OPTARG ;;
            a) attachments+=( "$OPTARG" ) ;;
        esac
    done

    {
        echo "From: $from"
        echo "To: $to"
        echo "Cc: $cc"
        echo "Subject: $subject"
        echo "Content-Type: multipart/mixed; boundary=\"$boundary\""
        echo "Mime-Version: 1.0"
        echo
        echo "This is a multi-part message in MIME format."
        echo
        printf -- "--%s\n" "$boundary"
        echo "Content-Type: text/plain; charset=ISO-8859-1"
        echo
        echo "$body"
        echo
        for filename in "${attachments[@]}"; do
            # attach it if it's readable and non-zero size
            if [[ -r "$filename" ]] && [[ -s "$filename" ]]; then
                printf -- "--%s\n" "$boundary"
                echo "Content-Transfer-Encoding: base64"
                echo "Content-Type: application/octet-stream; name=$(basename "$filename")"
                echo "Content-Disposition: attachment; filename=$(basename "$filename")"
                echo
                base64 "$filename"
                echo
            fi
        done
        printf -- "--%s--\n" "$boundary"
    } | /usr/lib/sendmail -oi -t
}

관련 정보