Challenge Java EE !

Java EEを中心に趣味や仕事における開発メモを書いています。

MailSlurpを利用したメールのEnd-To-Endテスト

システム開発する上でメールの送受信テストは何かと面倒です。できればユニットテストに組み込んで人手のテストは避けたい所だと思います。

JavaでJUnitを使ってテストする場合、SubEtha SMTPのようなライブラリを使うと割と簡単にテストできます。この辺はWEB+DB PRESS Vol.102のJavaの新定石で特集されているので、詳しく知りたい方は手に取ってみてください。
gihyo.jp

プログラミング言語に縛られない良い方法はないのかなと思っていたところ、先日SparkPostのブログでMailSlurpというサービスが紹介されていました。

www.sparkpost.com

f:id:kikutaro777:20180218234316p:plain

End-to-endのメールテストを簡単にするサービスで、Web APIを使ってテスト用のinbox作成と受信確認ができます。

実際に試してみたら非常に簡単だったので紹介します。

アカウント作成後、API Keyを取得します。

f:id:kikutaro777:20180218230936p:plain

Web APIでinboxを作成します。

curl -X POST https://api.mailslurp.com/inboxes?apiKey=test

成功するとidと宛先のメールアドレスが返ってきます。

{
  "payload":{
    "id":"xxxxxx-xxxx-xxxx-xxxx-xxxx",
    "address":""xxxxxx-xxxx-xxxx-xxxx-xxxx@example.com"
  },
  "message":""
}

上記メアドにメールを送信後した後、idをURLのパスに含めてGETするとinboxで受信したメールを取得できます。

curl https://api.mailslurp.com/inboxes/xxxxxx-xxxx-xxxx-xxxx-xxxx?apiKey=test

レスポンスで返ってくるpayloadはinbox作成時と違って配列形式なので注意してください(気付かずJavaでJSON->Object変換にしばらくハマってました)

{
  "payload": [
    {
      "body": "xxxxx",
      "from": "xxx",
      "id": "xxxxxx-xxxx-xxxx-xxxx-xxxx",
      "received": "2018-02-18T14:11:02.688Z",
      "returnPath": "xxx@examle.com",
      "subject": "Hello",
      "to": [
        "string"
      ]
    }
  ],
    "message": ""
}

このようにWeb API経由でinboxを作成&受信確認できるので、言語に関わらず簡単に使えます。また、テスト用の宛先が発行されるので誤送信も防げます。

次のコードはJavaでテストした例です。メール送信はSendGrid&JavaMailを使っています。

inbox作成にwaitが必要で、この時間をどのくらいに定めるか微妙なところですが、非常にお手軽です。実際に動くソースは以下に置きました。

github.com

「エバンジェリストスクール公開収録イベント エバスク全社会議2018」に参加しました!

イベントの抽選に当たって、1月23日(火)の19時から「エバンジェリストスクール公開収録イベント エバスク全社会議2018」に参加してきました(^^)!

エバンジェリストスクール!はTokyoFMで毎週土曜深夜24:30から30分、最新ITトレンドやビジネススキルをテーマに乃木坂46の若月佑美さんとエバンジェリスト西脇資哲さんがお話するラジオです。
kikutaro777.hatenablog.com

公開収録は今回2回目で、運よく2回連続の当選!!嬉しい(>_<;
f:id:kikutaro777:20180127122251j:plain

前回参加レポートはこちらです。
kikutaro777.hatenablog.com

今回はなんと日経ホールでの開催で、参加人数は前回の倍近い500人以上(ホール全体埋まってたので600近い気がしますが…)とのこと!

前回のゲストは秋元真夏さんことまなったんで、場を大いに盛り上げてくれましたが、今回も負けず劣らず超豪華なゲストで何と「若様軍団」勢ぞろいでした!みんな可愛かった(*´Д`)

http://img.nogizaka46.com/www/smph/member/img/wakatsukiyumi_prof.jpghttp://img.nogizaka46.com/www/smph/member/img/umezawaminami_prof.jpghttp://www.nogizaka46.com/smph/member/img/yamashitamizuki_prof.jpghttp://www.nogizaka46.com/smph/member/img/sakaguchitamami_prof.jpg

www.youtube.com

私はH列だったのですが、一番前の列とか相当近かった気がします…。最前列は日経電子版の有料会員枠だった感じですかね?自分も有料会員なんですが、今回案内出て速攻で申し込んだのがTokyoFMさんで、日経枠を全然意識できてなかったです><;しまった。次回は忘れないようにしないと。

それにしても1時間30分近く、ずっと乃木坂メンバを眺められる機会って中々ないですよね(^^;

今回は
・日経さんによるプレゼンの見本
・リスナーによる企画プレゼン
・タイピング大会
・西脇さんによる映像テーマのプレゼン
という構成で笑いっぱなしの1時間30分という感じでした!面白かった(^^)

日経さんのプレゼンは日経電子版の高速化に関する話で、結構技術的な内容が入ってて個人的には面白かったです(^^)が、客層的にどうだったんだろw 軍団員はポカーン( ゚д゚)としてた感じもw

リスナーによるプレゼンは結構ガチな企画で、乃木坂メンバの前でプレゼンする貴重な機会!で、私も申し込んでたのですが、残念ながら落選でした(*´Д`)もう少し一般受けする企画にするべきだった…けど頭が固いので発想がでない(´・ω・`)こんな企画でした↓
f:id:kikutaro777:20180127133648p:plain

ちなみにエバスクアプリは趣味で既に作ってるので是非使ってみてください!
エバスクアプリ! (Evatfm App!) - Google Play の Android アプリ
「エバスクアプリ! (Evatfm App!)」をApp Storeで

プレゼン落選悔しい(>_<;けど皆さんうますぎたので仕方ない。

美波さんは大人で綺麗だった…そして、美月さんかわいかった…。
あとたまちゃんがメッチャ面白かったですw

若ちゃん西脇さんの掛け合いはいつも聴いてるラジオ通りで、さすがに2年近くやってるだけあって阿吽の呼吸という感じですね。長く続いて欲しいなぁ。

イベントの詳細は既に参加者皆さんがリアルタイムツイートしてて、そっちみるほうが雰囲気伝わるかと思いtogetterにまとめました。
togetter.com

放送は明日1/28(日)の19時から!
f:id:kikutaro777:20180127134129p:plain

前回に続き、ネ申イベントすぎました。明日の個握で若ちゃんに「参加したよ」って報告しなきゃ。
f:id:kikutaro777:20180127135923j:plain

2017年振り返り+2018年の抱負

あけましておめでとうございます。年が明けてから時間が経ってしまいましたが、2017年の振り返りと2018年の抱負について書きます。

2017年の振り返り

2016年後半に部門異動して、受託開発&Developerからサービス提供&Supportの業務に移って1年。新しい環境で学ぶことが多くて大変ですが、とても良いチームでストレスもなく、振り返ると充実した良い1年でした。

良かったこと

仕事
  • テクニカルサポート本格参入
  • ハンズオンを担当 #マーケティングキャンペーン機能ハンズオン次回は2/1です!
  • SendGrid社訪問
  • Pardot本格利用を担当 #設計や検証で遅れて本格稼働は今年
  • JJUG CCC 2017 Fallスポンサー #個人的にはとても嬉しいこと!
  • デブサミなどのイベント展示担当
  • de:code2017参加 #2017年は会社経費。ありがたや。
  • 出世 #後述しますが同時に悩みにもつながる...
個人

あとどちらの枠にも入らないのですが、ずっと応援してる乃木坂46がレコード大賞受賞したのが年末で一番嬉しかった出来事です。

悪かったこと

悪かった、というか反省点。

仕事
  • 日本語を書く力のなさ
  • 変な自己プレッシャー
個人
  • 乃木坂46に投資しすぎ
  • もう少し親孝行などを(祖母含め)

SendGridチームでは文章のレビューを徹底しています。サポートの回答やブログなど、外に出る情報は特に厳しいのですが、昨年はレビュアーに負担をかけてしまった1年でした。文章が長くなりがちなど、自分の悪い癖は把握しつつも、それ以前に基本的な日本語の使い方や読み手のことを考えた文章が書けないなど、色んな課題に気づかされました。書籍執筆した時も振り返り、今年はこの点を真摯に磨いていきたいです。

あと、良かったこと、に挙げてますが、今までの仕事で評価をいただきランクアップしました。ありがたい限りです。ただ、嬉しい反面、仕事内容がガラッと変わって今の自分にできることがギュッと小さくなっているため、逆に焦りが変に出てきました。上記の日本語のことや、その他思うようにいかない時に過剰に凹むなど、変に自己プレッシャーがかかってしまって良くないです。どうしたものか。とりあえず努力を積み重ね、結果を出すしかないので頑張るのみ。

2018年の抱負

MSの西脇さんが話されてる「点を増やして面を大きくする」話(ex. これとか)がとても好きで、今年は新しいことにも挑戦して、点を増やしていきたいです。

現時点で考えていることを社内と社外で1つずつあげると...

社内で部門横断的に開発の話ができる場作りをしてみたい

部が違えば会社が違う、というレベルで各部やってることが違う弊社ですが、開発はもっと部門の壁を超えて知識共有すべきだと思うんですよね。そういう交流の場が圧倒的に少ない気がします。未だにxUnitとかの自動テストって何?みたいなところもありますし....。そういう場を作って何の意味があるの?とか考える前に行動してみるのもありなのかなーと。まずは、そういう場を望んでるメンバがいるのか?というところから探さないといけませんがw(そういう想いを持ってた人が何人もいたのですが、皆いなくなっていく...)

他社様とのコラボ

SendGridが使えるPaaSであったり、連携するサービスだったり、出張ハンズオンみたいなものだったり、形はなんでもいいのですが、何かコラボ企画みたいなのができるといいなぁと思っています。って考えがざっくりしすぎですが(^^;

他には

  • メールのことを一から勉強しつつ情報発信(地味に一番意識してる)
  • ドッグフーディング兼ねて作りたいシステムがあるので開発する
  • 英語力を向上する(目指すはTOEIC850超え)
  • 社外イベントでの発表

など、頑張りたいことが多々あります。今年も少しずつ成長していきたいと思います。

にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村