シェルスクリプトから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プログラム、およびWebサイトで使用するように設計されていますが、適応性が高く、要件を大部分満たすことができます。 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

おすすめ記事