0
0

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 1 year has passed since last update.

WindowsでSwaksを使ってメール送信

Last updated at Posted at 2022-06-10

TL;DL

OCIのMail Deriveryなどで、メールの送信テストをする際、
SwaksというPerlのスクリプトを使えばハッピーだ!ということを知りました。

実際、Linuxサーバの上で実行してみたら、思いの他にデバックで役に立ったので
いろいろなところでお勧めしよう思い。。。
Perlが使えるならWindows上でも動くよね?と、いうところで検証をしてみました。
(もちろん、使えたのでその手順を紹介しますー)

テストした環境

  • サーバOS:
    Windwos 2019 Standard(Oracle Cloudのコンピュートインスタンス)
  • Perl環境
    Swaksでサポートされてるもの & Portable版(テスト完了後、削除したい)

Perlのインストール

  • 今回、Strawberry PerlというPerlを使います
    • レジストリを汚さないPortable版が存在するし、
    • Swaksの公式サイトで、紹介がされていたので。

    Keep in mind that a working Perl will need to be installed (Strawberry Perl and ActiveState Perl both work)

  • ダウンロードサイト:https://strawberryperl.com/releases.html
    strawberry-perl-5.32.1.1-64bit-portable.zip
    → インストールは、デスクトップとかに解凍するだけ。
     アンインストールも、これを丸っと削除するだけ。

Perlを起動(動作確認)

  • portableshell.bat 実行
----------------------------------------------
 Welcome to Strawberry Perl Portable Edition!
 * URL - http://www.strawberryperl.com/
 * see README.TXT for more info
----------------------------------------------
Perl executable: C:\Users\opc\Desktop\strawberry-perl-5.32.1.1-64bit-portable\perl\bin\perl.exe
Perl version   : 5.32.1 / MSWin32-x64-multi-thread

Swaksスクリプトをゲット

C:\Users\opc\Desktop\strawberry-perl-5.32.1.1-64bit-portable>curl "http://www.jetmore.org/john/code/swaks/files/swaks-20130209.0/swaks" > ./swaks.pl
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  149k  100  149k    0     0   141k      0  0:00:01  0:00:01 --:--:--  141k

Swaksでメール送信を実行

ワンライナー。長いけど。

perl swaks.pl -4 -tls --pipeline \^
  --server smtp.email.ap-tokyo-1.oci.oraclecloud.com --port 587 \^
  --auth-user ocid1.user.oc1..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@ocid1.tenancy.oc1..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.wm.com \^
  --auth-password "XXXXXXXXXXXXXXXXXXXX" \^
  --from no-reply@sub.hogegegege.net \^
  --to 宛先のメアド \^
  --header "Subject: =?UTF-8?B?44CQ44OG44K544OI44CR?= from OCI(Email Delivery)!" \^
  --body "email message... TEST\nqwerty\n\n."

各オプションで指定する内容は、Linux上で実行するときと一緒です。
同じスクリプトを実行するので、当たり前と言っちゃ当たり前ですがw

ただ、OSシェルの機能差分として、-4(IPv4指定)が必要だったり、
クウォートの違い(シングル or ダブル)とかもあるので、気をつけませう。

  • 参考:Linux上でSwaksを実行する場合のコマンドのサンプルはこちら

【蛇足】Windowsファイアウォール

メールが送信できない場合は、Windowsファイアウォールなどを疑ってみましょう

Windowsファイアウォールの状態確認
PS C:\Windows\system32> netsh advfirewall show allprofiles state
Domain Profile Settings:
----------------------------------------------------------------------
State                                 ON

Private Profile Settings:
----------------------------------------------------------------------
State                                 ON

Public Profile Settings:
----------------------------------------------------------------------
State                                 ON
Ok.
Windowsファイアウォールの無効化
PS C:\Windows\system32> netsh advfirewall set allprofiles state off

さいごに。

Perlのお作法的によろしくない用法を紹介してしまっているかもしれません。
気になる記載があれば、コメントで教えてくださいー

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?