쉘 스크립트에서 Gmail ID로 첨부 파일 보내기

쉘 스크립트에서 Gmail ID로 첨부 파일 보내기

보고서를 생성하는 쉘 스크립트가 있습니다. 저는 crontab을 사용하여 매일 오후 1000시에 이 자격 증명을 실행합니다.

이 보고서를 내 Gmail ID에 첨부하여 메일로 보내고 싶습니다.

나는 mutt를 사용해 보았지만 나에게는 효과가 없었습니다.

sendEmail을 설치한 후 이메일을 보내려고 하면 다음 메시지가 나타납니다.

Sep 14 15:15:37 debal sendEmail[3671]: DEBUG => Connecting to smtp.gmail.com:587
Sep 14 15:15:38 debal sendEmail[3671]: DEBUG => My IP address is: 192.168.2.103
Sep 14 15:15:38 debal sendEmail[3671]: SUCCESS => Received:     220 mx.google.com ESMTP uw6sm17314211pbc.8 - gsmtp
Sep 14 15:15:38 debal sendEmail[3671]: INFO => Sending:     EHLO debal
Sep 14 15:15:38 debal sendEmail[3671]: SUCCESS => Received:     250-mx.google.com at your service, [180.151.208.181], 250-SIZE 35882577, 250-8BITMIME, 250-STARTTLS, 250-ENHANCEDSTATUSCODES, 250 CHUNKING
Sep 14 15:15:38 debal sendEmail[3671]: INFO => Sending:     STARTTLS
Sep 14 15:15:38 debal sendEmail[3671]: SUCCESS => Received:     220 2.0.0 Ready to start TLS
*******************************************************************
 Using the default of SSL_verify_mode of SSL_VERIFY_NONE for client
 is deprecated! Please set SSL_verify_mode to SSL_VERIFY_PEER
 together with SSL_ca_file|SSL_ca_path for verification.
 If you really don't want to verify the certificate and keep the
 connection open to Man-In-The-Middle attacks please set
 SSL_verify_mode explicitly to SSL_VERIFY_NONE in your application.
*******************************************************************
  at /usr/local/bin/sendEmail line 1906.
invalid SSL_version specified at /usr/share/perl5/vendor_perl/IO/Socket/SSL.pm line 414.

perl-Net-SSLeay perl-Net-SMTP-SSL에 yum 설치를 수행했고 이것이 결과입니다.

[root@debal ~]# yum install perl-Net-SSLeay perl-Net-SMTP-SSL
Loaded plugins: langpacks, refresh-packagekit
Package perl-Net-SSLeay-1.54-1.fc19.x86_64 already installed and latest version
Package perl-Net-SMTP-SSL-1.01-13.fc19.noarch already installed and latest version
Nothing to do

문제가 지속됩니다. 저는 Fedora 19를 사용하고 있습니다.

답변1

당신은 그것을 사용할 수 있습니다이메일을 보내

이메일 발송에 관하여

SendEmail은 가벼운 명령줄 SMTP 이메일 클라이언트입니다. 명령줄에서 이메일을 보내야 한다면 이 무료 프로그램이 완벽합니다. 사용이 간편하고 기능이 풍부합니다. 이는 bash 스크립트, 배치 파일, Perl 프로그램 및 웹 사이트와 함께 사용하도록 설계되었지만 적응성이 뛰어나며 요구 사항을 대부분 충족할 것입니다. SendEmail은 Perl로 작성되었으며 모듈이 필요하지 않다는 점에서 독특합니다. 직관적이고 유연한 명령줄 옵션 세트가 있어 배우고 사용하기가 매우 쉽습니다. SendEmail은 GNU GPL, 라이센스 버전 2 또는 (귀하의 선택에 따라) 이후 버전에 따라 라이센스가 부여됩니다. [지원 플랫폼: Linux, BSD, OS X, Windows 98, Windows NT, Windows 2000 및 Windows XP]

CentOS/RHEL에 sendEmail을 설치하고 Gmail ID로 이메일을 보내는 데 사용한 다음 스크립트

#!/usr/bin/env bash
# Define sender's detail  email ID
From_Mail="[email protected]"

# Sender's Username and password account for sending mail
Sndr_Uname="${From_Mail}"
Sndr_Passwd="your_password"

# Define recepient's email ID
To_Mail="[email protected]"

# Define CC to (Note: for multiple CC use ,(comma) as seperator )
# CC_TO="[email protected]"

# Define mail server for sending mail [ IP:PORT or HOSTNAME:PORT ]
RELAY_SERVER="smtp.gmail.com:587"

# Subject
Subject="Test Mail using SendEmail"

# sendEmail download link
download_sendEmail="http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz"


# Mail Body

MSG() {

cat <<_EOF
Dear Sir,

    Please find the attachment of PDF File

_EOF

}


# store loggin information in below log file
Log_File="/var/log/sendmail.log"

# check sendmail dir exists or not if not check create it
Log_dir="$(dirname ${Log_File})"


if [ ! -d "${Log_dir}" ]; then

    mkdir "${Log_dir}"

fi



check_sendmail() {

    if [ ! -x "/usr/bin/sendEmail" ]; then
        echo "sendEmail not installed"
        echo "Installing sendEmail..."
        sleep 1s
        wget -cnd "${download_sendEmail}" -O /tmp/sendemail.tar.gz >/dev/null 2>&1
        tar -xzf /tmp/sendemail.tar.gz  --wildcards  *sendEmail
        install --mode=744 sendEmail*/sendEmail /usr/bin/
        yum install perl-Net-SSLeay perl-Net-SMTP-SSL -y
    fi
}



check_sendmail

/usr/bin/sendEmail -v -f ${From_Mail} \
                     -t ${To_Mail} -u "${Subject}" \
                     -m `MSG` \
                     -xu "${Sndr_Uname}" \
                     -xp "${Sndr_Passwd}" \
                     -o tls=auto \
                     -s "${RELAY_SERVER}" \
                     -cc "${CC_TO}" \
                     -l "${Log_File}"

-a명령 의 파일 첨부 옵션을 사용할 수 있습니다sendEmail

관련 정보