シェル(bash)で、gmail を使ってのメール送信は簡単にできるのでしょうか? ruby ,perl, とか使えばできるのですが、シェルでも簡単にできるのなら、使ってみたいです。gmail は、TSL と SMTPAUTH 使うのでそれなりに面倒な気もします。postfix の設定変更なども必要ではあるようです。参考 http://www.maruko2.com/mw/Postfix_%E3%81%A7%E3%83%A1%E3%83%BC%E3%83%AB%E3%83%AA%E3%83%AC%E3%83%BC%E3%81%AE%E8%A8%AD%E5%AE%9A_(SMTP_%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88_%2B_SMTP_Auth)

回答の条件
  • URL必須
  • 1人3回まで
  • 13歳以上
  • 登録:2012/11/26 13:54:24
  • 終了:2012/12/03 13:55:03

回答(4件)

id:JULY No.1

JULY回答回数966ベストアンサー獲得回数2472012/11/26 14:29:50

ポイント25pt

必ず Gmail を介して送信するのであれば、

  • Gmail 側へ接続し、メールを送信するのは postfix の役目。
  • その postfix へメールの送信を行わせるのは、シェルスクリプト中で mail コマンド、もしくは、sendmail コマンドで。

とすれば、それほど難しくないと思います。

postfix 側の設定は、下記のページが参考になるでしょう。
Postfixでのリレー設定方法 - Linuxで自宅サーバ構築(新森からの雑記)
Gmail は確か、SSL/TLS 必須のはずなので、これに加えて「smtp_use_tls = yes」が必要になると思います。

英語ですが、実際に Gmail へ転送しようとした人のページもありました。
Postfix SSL GMail SMTP Relay on Fedora (or CentOS) « Carlton’s Online Notebook
ただ、上記ページで、SSL/TLS のクライアント証明書を作っている部分は、不要のはずです。

ここさえ正しく設定できれば、後は、mail コマンドや sendmail コマンドで postfix 側に送信処理を任せられると思います。

id:Yunoka No.3

yunoka回答回数27ベストアンサー獲得回数32012/11/27 11:49:47

ポイント25pt

OpenSSLコマンドを使えばできますが、簡単ではないかもですね。

http://d.hatena.ne.jp/turkey_hate/20121105

このくらいならさっくりラッピングしてしまえば1コマンドでいけそうです。

id:y-kawaz No.4

y-kawaz回答回数1420ベストアンサー獲得回数2252012/11/27 13:45:31

ポイント25pt

適当ですがこんな感じでどうでしょう。

#!/bin/sh
user="example@gmail.com"
pass="yourpassword"
to="friend@example.com"

( sleep 1
  echo "EHLO `hostname`"
  sleep 1
  echo "AUTH PLAIN `echo -en "$user\0$user\0$pass" | base64`"
  sleep 1
  echo "MAIL FROM: <$user>"
  sleep 1
  echo "rCPT TO: <$to>"
  sleep 1
  echo "DATA"
  sleep 1
  ( echo "Subject: THIS IS TEST"
    echo "From: $user"
    echo "To: $to"
    echo ""
    echo "hello gmail"
    echo "hehehe"
    echo "."
  ) | perl -pe's/(?<!\r)\n/\r\n/'
  sleep 1
  echo "quit"
) | openssl s_client -connect smtp.gmail.com:465
  • ホントはgmailの正常レスポンスを受けて次に行くべきですがOKが返ってくる事を見越しつつsleepで手抜き待ちをしています。
  • RCPT TOと大文字で書くと行頭のRがopenssl的にRENEGOTIATINGの意味になっておかしなことになるのでそこだけあえて小文字にしてます(多分本文でも同じでopensslのs_clientを使う限り行頭にRが使えません)。
  • あと、DATA以降は改行コードが\nのみだけだと足りないので\r\nに変換してます。

http://q.hatena.ne.jp/answer

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません