1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

BlatJ.exeのようなsendmailのようなメール送信するCLIコマンド sendmail.net.exe

Last updated at Posted at 2018-05-30

アーキテクチャ

System.Net.Mail.SmtpClientを使った mail クライアントです。


使い方(ダウンロードとインストール)

Microsoft .NET Framework2.0/4.0 で作った BlatJ.exe(sendmailコマンド) からsendmail.net.lzhをダウンロードして、ZoneIDを削除して、解凍すれば、使える。

  • .NET2.0でコンパイルしたのが、sendmail.net2.exe
  • .NET4.0でコンパイルしたのが、sendmail.net4.exe

なので、

  • .NET Framework2.0 ランタイムで動作するのが sendmail.net2.exe
  • .NET Framework4.0 ランタイムで動作するのが sendmail.net4.exe
  • .NET Framework4.5 ランタイムで動作するのが sendmail.net4.exe

となる。


usage

C:\>sendmail.net4.exe
sendmail.net4.exe ver 2.1.0.0
                            created by active@window.goukaku.com

usage : sendmail.net4.exe <<option>>
 Mail Body is Standard Input.

 OPTIONS
   -SmtpServer <<SMTP Server Address>> (must)
   -SmtpServerPort <<SMTP Server Port>> (Default:25)
   -Subject <<Subject>> (must)
   -Fromaddress <<From Mail Address>> (must)
   -ToAddress   <<To Mail Address>>
   -CcAddress   <<Cc Mail Address>>
   -BccAddress  <<Bcc Mail Address>>
   -ReplyToAddress  <<ReplyTo Mail Address>>
   -ToList  <<To Mail Address List File>>
   -CcList  <<Cc Mail Address List File>>
   -BccList <<Bcc Mail Address List File>>
   -AttachFile <<Attach File>>
   -CharSet <<Character Set>>
   -User <<username>>
   -Pass <<password>>
   -SSL
   -CheckCert
   -OldMode {only .NET4.5 ... Old MailFormat (if set charset this option need)}
Error: No Set MailServer

必須オプション

メール本文は、標準入力から与える。

必要なオプションは、以下

  • -SmtpServer → メール配送を委ねる SMTP サーバ
  • -Subject →題名
  • -Fromaddress → 送信元
  • -ToAddress or -ToList →あて先

SSL

-SSL オプションで、STARTTLS対応する。

System.Net.Mail.SmtpClientの制限で、SMTP over SSL ではなくて、STARTTLSだけのようだ。

SMTP over SSL に対応したい場合は、stoneとかsTunnel などを経路上に挟めばいいでしょう。
または、StreamRealy.jar でも StreamRelay.Net.exe でもSSLクライアントになれるよ。

↓のあたりを参照のこと


サーバ側のSSL証明書の確認

基本的に検証しないが、-CheckCert オプションで検証させることができる(検証不備でエラーが発生する)。

「デフォルトセキュア」ではないけど、まぁ、いいでしょ。


クライアント側のSSL証明書

検証環境はないけど、プロパティがあるので、「-CertFile」と「-CertPassword」で対応した(ver2.2.0.0)


認証

SMTP認証には、-User と -Passを与えればよいが、System.Net.Mail.SmtpClientの制限で、AUTH LOGINのみに対応しているようだ。


文字コード(既定)

  • .NET2.0 → ISO-2022-JP
  • .NET4.0 → ISO-2022-JP
  • .NET4.5 → UTF-8

文字コード(古きよき伝統的スタイル)

基本的に、古きよき伝統的なスタイルで送信する。(.NET2.0/.NET4.0)

ただし、.NET4.5で動作している時は、既定はUTF-8な8bitなメールとしたので、古きよき伝統的スタイルで送信したい場合は「-CharSet iso-2022-jp -OldMode」とすると、7bitな古きよき伝統的スタイルのメールを送信する。


.NET Framework 4.5 での仕様変更への追随

.NET Framework 4.5 以降では、4.0 とは古きよき伝統的スタイルでの仕様変更があったようで、4.5未満と4.5以降で、処理を分けるようにしている。


StreamRelay.NET.exe(mailtoスキーム)

機能的には劣るけどStreamRelay.NET.exeもURIなパスに対応してみた。

curl のような wget のようなウェブクライアントの代替としてのStreamRelay.NET.exe


StreamRelay.NET.exe(代理認証)

SMTP認証を代替するStreamRelay.NET.exe

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?