「メール」タグアーカイブ

Rails 4 メールでのエラー通知


Rails で、エラーが出たときにメールが送信されるようにしました。

環境

  • Ubuntu 15.05 (64bit)
  • Ruby 2.2.2
  • Rails 4.1.8

昔のやり方

Rails 3 のときは、 ApplicationControllerrescue_in_public にメール送信のコードを見たことがあります。

current_user は ログインしているユーザです。 devise を利用しています。

しかし同じことをやっても意図した通りにメールは送信されませんでした。

解決法

Rails 3 のときにもあった rescue_from を使いました。

rescue_from Exception とすることで、コントローラ内の処理で発生したすべての例外を拾います。 これが rescue_from StandardError だと 単純に raise "exception!" のように例外を起こしたときの RuntimeError が拾えません。 また、0 = 1 の時に起きるような syntax error は拾いません。 拾うのはプログラムとして動いた上でのエラーです。 そして、コントローラに入る前の処理は拾いません。

重要なのは handle_exception の中の raise exception です。 handle_exception ではエラーをもみ消したいわけではなく、メールを送りたいだけです。 AOP の考え方です。 今回は簡易的に application_controller.rb にメソッドを追加しています。

send_error_mail の中で使われている current_user は gem devise で用意されているもので、ログインしているユーザを返します。 適宜変更してください。 self はどのコントローラで例外が発生したのかをメールに載せるために渡しています。 request はリクエストのURLなどを表示するのに使います。 また !Rails.env.development? で評価を行っているところがありますが、 config に書くようにできれば一番いいです。 Rails 4.2 になったらカスタムコンフィギュレーションが使えるそうなので、アップグレード後の課題としました。

注意点

コントローラに入った後の例外しか処理しないので、 コントローラに移る前の例外は別の方法で補足する必要があります。

それならばコントローラの中ではなく外側で例外処理を書けばいいという考え方もあるのですが、コントローラの中でしか参照できない値や、コントローラの中で使いやすくなっているオブジェクトなどがあるので、 applicatoin_controller.rb に処理を書きました。

続きを読む Rails 4 メールでのエラー通知


定期的にメールを自動で送る方法


定期的にメールを送るとき、みなさんどうしていますか? Google を使用すると、 gmail から自動でメールを送信することができます。

続きを読む 定期的にメールを自動で送る方法


1分間時間術


友達なんてたくさん作ってどうするんだ!

そんな斬新な本でした。

読者として境遇の当てはまる部分が多く、とてもわかりやすかったです。わかりやすいというか、指針が得られた本でした。また、私の経験とも重なる部分があったので、今までのやり方に自信が持てた部分もありました。

メディアを絶つ

テレビ、ラジオ、新聞、雑誌、メールマガジン、……。いろんな人がいろんな情報を発信しています。我々もそういった情報を目にして生活しています。ところで、そのなかで役に立ったといえる情報はどれだけあるでしょうか。いくつ挙げられますか?

筆者は、これらはすべて不要だと書いています。私も、テレビは時間の無駄だと判断して、小学生の頃から見るのをやめました。たしかにそうすることで時間を作ることができましたし、勉強などは他人よりもよくできていました。

ただこの中で一つだけ、断ち切れていなかったものがありました。メールマガジンです。本書には、登録してもよいメールマガジンの数断ち切るべきメールマガジン登録に値するメールマガジンについて書かれていました。今日からその指針に沿って、登録していたメールマガジンをバンバン解除していきます。

専属と集中

父、母、子供。それぞれがそれぞれの役割を持っています。筆者の環境はとても恵まれていました。父は稼ぐ、母は家事をする、子供は勉強をする。各自、自分の役割に集中をする環境ができていました。それが成功への近道なんです。父親が家事をやっていたら稼ぐスピードが遅くなる、基本的な考え方はとても単純です。

私も小学生~高校生の頃はそんな環境にありました。私自身も勉強に集中していました。そのため大学はトップレベルの大学に行けましたし、その恩恵を今でも受けています。

ただ、友人関係があまりうまくいかなかった。今でもちょっと引け目を感じていますが、そんなことは気にすることではないと著者は書いています。友人なんて1年に1人つくればいい。そんなに友人を作ったり、深い人付き合いをしてもあまりいいことはないそうです。難しく考える必要はないみたいで、少し救われたような気がしました。細かいことについては本書をお読みください。

また、大学から今に至るまではあまり集中してこなかったので、それなりにうまくいかない人生を送っています。今一度生活を見直してみようと思いました。自分だけではなく、家庭そのものの環境から変えることが必要ですね。

返事を返すタイミング

会社で働く私にとって、メールの返信は非常に重要な仕事です。メールをいつ返すのがよいのか。また、メールはいつチェックするのがよいのか。著者は、返信するべきではないメールもあると書いています。

また、この本にはどんな内容で返信するべきかも書かれています。長文よりも、1行でいいから返す、寧ろその方がいい。1行ですからその中に必要な情報を入れないといけないですね。あなたなら、どうしますか?

この本には例文が載っており、大変参考になります。この技は、明日から使わせていただきます。

そのほかにもおもしろい話が書かれていたのですが、長くなるのでここでの紹介は控えます。もし、「なんだか役に立ちそうだ!」と思われた方は是非読んでみるといいと思います、きっと役に立ちます。


Excel でメールアドレスクリック時に自動でメッセージなどを入れる方法


Excel にメールアドレスを入力すると、青色のリンクになります。 ここでは、そのリンクをクリックしたときにタイトルなども含めてメールのひな型を作成する方法を書きます。

メールアドレスをクリックした際にできるメールに、受信者の名前を表示したいという要望を受けて調べました。

前提

使用者のパソコンには メールソフト Thunderbird がインストールされており、 メールアドレスのリンクをクリックすると Thunderbird のウインドウが開くようになっています。

方法

セルの式に “=Hyperlink("mailto:name")” と入力します。

もし、本文やメールタイトルも設定したい場合は “=Hyperlink("mailto:name?subject=title&body=message")” というように入力します。

式を直接入力しなくても セルを右クリックし、ハイパーリンクを選択して設定することもできますが、 セルが複数あるときは式を編集するのが早いです。