メール本文のデコード まずgmailの"メッセージのソースを表示する"をクリックする。そしてメール本文をコピーする。 encodingがbase64でcharsetがUTF-8の場合
クラウドワークス Advent Calendar 17日目担当のSMTPおじさんの記事です。 時間の無い人のために3行でまとめますと以下のコンテンツでお送りします。 大規模なメール配送を安全に行うには特別なノウハウがあり罠も多い SendGrid便利です 当たり前になった技術は空気のように見えなくなってインフラ化する。それがある日突然失われたときの被害は甚大。インフラ技術をキャッチアップして備えよう メール配送今昔 さて、メール配送といえば古くはSendmailを使っていました。多くのUnixディストリビューションに標準でインストールされており、使うのが当たり前で選択肢も少なかった時代です。 Sendmailは開発が重ねられることで複雑化しセキュリティホールが頻発しました。また設定ファイルのsendmail.cfはチューリング完全であるほど高機能で複雑でまた長くなりがちでもあり今でも書きた
3日目で息切れしてきたので、今日は軽めな内容です。 データベース更新とメール送信の一貫性 商品購入の完了ページなど、よくデータベースを更新して、メールを送信してデータベースをコミットするという仕様があります。 データベース登録出来てないのに、完了メールを送るわけにはいかないので、これらを1トランザクションにできなきゃいけません。が、SMTPプロトコルにコミット/ロールバックの概念はありません。 さて、どう設計しましょうか、というお話です。 方式 A.DBトランザクション後にメールを送る 同一トランザクションはあきらめ、データベースを先にコミットし、その後でメールを送る、という設計です。 メール送信でエラーになったら、データベースには書き込めているので、メールだけ再送するように仕組みを作ったりします。 以下のようなイメージです。 public class OrderController {
Amazon SES を利用してメール送信する際に必要となるスパム対策の基礎知識と、環境構築や利用申請の方法については具体的にステップ・バイ・ステップで説明します。SESのメール送信では、SESの利用方法や応用例をご紹介します。 SES とは Amazon SES(Simple Email Service)は Amazonが提供するフルマネージド型のメール配信サービスで以下の特徴があります。 初期費用無し、低価格 配送機能のみ提供 *1 Email配送API Amazon SES クエリ(HTTPS) AWS コマンドラインインターフェイス AWS Tools for Windows PowerShell AWS Software Development Kit(SDK) Android、Browser、iOS、Java、.NET、Node.js、PHP、Python、Ruby、および G
オンラインショッピングをしたり、よく知らない人にメールアドレスを教えなければならない時などに、いわゆる"捨てアカ""捨てアド"のメールアドレスを使う人も多いでしょう。その手のアドレスに使えるサービスは数多くありますが、「MailDrop」は本当のアドレスからジャンクメールを一掃するのにピッタリのサービスです。これまでに紹介してきた似たようなサービスとMailDropの違いは、例えば受信トレイに有効期限がないところです。ほとんどのサービスでは、受信トレイに期限が設定されていたり、それを延ばしたい場合は有料になっていたりします。MailDropは無料で使い続けられるサービスなので、本当のアドレスを守りたい時にはいつでも、このアドレスを使い続けることができます。 ただし、ある程度の制約はあります。受信トレイに一度に保存しておけるメールは10通までだったり、24時間以内に開封されなかった受信トレイ
自分の持ってるドメインで mail サーバーを運用したいなーと思ったときに、VPSとか自宅サーバーよりも安定していて高機能だという事に気がついて設定した次第。 どうやって設定すればいいかは、google apps のアカウントを作れば懇切丁寧なチュートリアルがでるし、日本語の解説サイト(http://mage8.com/mymail.html)もあるので導入は超簡単。 これで、email 送りまくる web サービスも安心して作れるわー。 ということで、Email::Sender を使ってメールを送ってみる use strict; use warnings; use Email::Sender::Simple qw(sendmail); use Email::Simple; use Email::Simple::Creator; use Email::Sender::Transport::
最近は日本語の電子メールもUTF-8で送ってもいいという雰囲気になってきましたが、不特定多数が使うWebサービスを運営する場合は、まだまだISO-2022-JP(いわゆる「JISコード」)を使わざるを得ません。 しかし、Rails 3.xでISO-2022-JPの電子メールを送信するには、ひと手間が必要です。単に class UserMailer < ActionMailer::Base default :charset => 'ISO-2022-JP' ... end のように書くだけでは足りません。件名や本文のデータをISO-2022-JPで渡す必要があります。私は、メール本文のテンプレートをUTF-8で書きたいので、自動で文字コードが変換されるようにならないものかと考えました。 ネットで探すと、Matsushitaさんという方がmail_jaというプラグインをGitHubで公開されて
Webシステムではメールをユーザー送り、メール内のURLクリックで処理を行うようなケースも間々あります。そんなプログラムの受け入れテスト、End-to-Endテストを行うには Request Specs や Steak に Email Spec で簡単に書けます。 Email Spec は Rails の ActionMailer のメール送信部分をフックし送信されたメール内容をライブラリー内に保持し、RSpecでテストを書けるようにするライブラリーです。 RSpecベースなので Request Specs や Steakだけでなく Cucumber でも使えます。 インストール Gemfile に gem 'email_spec' を追加し bundle install を実行。 spec_helper.rb に以下を追加 require 'action_mailer' require
何らかのバウンスメールが返ってきたら、そのメールアドレスを配信不能なアドレスとして扱うという単純なバウンス処理を行った場合、“メールボックスがいっぱい”や“メールが大きすぎる”のようなエラーで宛先アドレスに配信不能フラグを立ててしまうという誤った対処をしてしまう危険性があります。 エラーになった理由ごとに適切な対処をすれば、メールアドレスの状態変化を管理しつつ、宛先不明アドレスの割合増加による遅延を回避ができます。検出できるエラーについての詳細は、http://bouncehammer.jp/features/engine/reasonをご覧ください。 読みにくいバウンスメールを構造化する BounceHammerは解析したバウンスメールの内容をYAML形式で出力します。YAML形式の解析結果は1行1レコードで書き出しているので、コマンドラインからcatで眺めたり、wcで行数計測す
今回からは前回導入したFDSを使って、LDAP+メールサーバという組み合わせを実現してみましょう。 ご存じの方もいらっしゃるかもしれませんが、実はこの構成に関しては、2003年発売の『Software Design』4、5、6月号で「バーチャルドメインとLDAPで楽々システム管理」という記事を紹介していますので、もしバックナンバーが押し入れに残っているのであれば、そちらも参考にしてみてください。 なぜLDAPでメールサーバ? 一般的な参考書を元にメールサービスを構築した場合、おそらく新規ユーザのアカウントを登録する手順は useraddでOSにユーザを追加 必要に応じてsaslpasswd2でSMTP Auth用のパスワードを追加 といった形になると思います。しかし近年ではメールサーバが複数ドメインを管理するバーチャルドメインで運用されていることが一般的ですので、そのような場合には バーチ
qmail の RFC 違反 違反してるからといって、それを糾弾するつもりも、使うなというつもりもないし、qmail 以外の MTA がまったく違反をしていないというつもりもない。ただ、他の MTA と比べてわりと目につきやすいところでやってるので、とりあえず気がついたところをメモしてみたもの。さらに、Qmail bugs and wishlist. というページの情報も加えてある。読めばわかるが、qmail-pop3d がかなり悲惨。 あんまり詳しく調査しているわけではないので鵜呑みにはしないように。間違いや追加情報があれば教えてください。 qmail-send: ダブルバウンス/VERP qmail-remote: 8BITMIME/バックアップ MX qmail-pop3d: サイズ/よけいな空行/LAST/STAT qmail-send: ダブルバウンスの envelope sen
■ Submissionポートとは Submissionポートは、前回紹介した「Outbound Port25 Blocking」と同様に、スパムメールに対して迅速に対応するための手法の1つです。 Outbound Port25 Blockingにしても、今回紹介するSubmissionポート(厳密に言えば、Message Submissionという方法なのですが)にしても、それ単独でスパムメールを解決できるものではありません。どちらも、“スパムメールを送りにくくする”程度の対策でしかないわけですが、こうした方法を積み重ねてゆくことでスパムメールを減らそう、という地道な努力を行なっているわけです。 さて話が前後しましたが、Submissionポートとは、Message Submissionと呼ばれる方法のために用意するポート(587番)のことを指しています。Message Submissi
KBMJ谷です。昨年の5月以来…。 今回はRails2.3.2で、テストコードを書きつつ(ここがミソ)、iso-2022-jpのメールを送ってみます。 o- 今回の環境 OS : Linux(ubuntu-server 8.10)@VitrulBox2.1.4 on WinXP SP3 Ruby : 1.8.7 (2008-08-11 patchlevel 72) [i686-linux] Rubygems : 1.3.1 o- 下準備 まず、メールの日本語化に用いるgettext_railsをインストールしましょう。 $sudo gem install gettext_rails インストールが終わったら、config/environment.rbのRails::Initializer.run内に下記内容を記述します。 config.gem "locale_rails" config.g
現時点 (2009/6/24, Rails 2.3.2)で、ActionMailerで日本語のメールを送る方法を整理してみました。 1. UTF-8対応のメールソフトに限定できる場合 Rails 2.3.2の ActionMailer で何も考えずにメールを送ると UTF-8コードでメールが送信されます。 UTF-8コードが正しく扱えるメーラーであれば、本文、サブジェクト、To:, From: に日本語が含まれていても問題なく送れます。 したがって、イントラネットなどで、メールを送る先がUTF-8対応のメーラのみに限定できる場合は これでも良いかもしれません。 UTF-8対応のメーラは Unicode(UTF-8)への各種メールソフト対応調査 で判ります。古いソフトでなければ Windows/Macはだいじょぶそうです。 2. ActionmailerJa プラグインを使う Actionm
今までメール(ActionMailer)のテストはどうにも面倒で、自分でブラウザから動かしてログを見てってやっていたんですが、Cucumberでメールのテストもできるっぽいので試してみました。 確認環境はRails2.3.2、Cucumber0.2.3、email_spec0.0.10。 email_specはgithubをsourceに指定してインストールすることができます(bmabey’s email-spec at master - GitHub)。config/environments/test.rbあたりに書いておくといいと思います。 email_specをインストールするとgenerateにコマンドが追加されています。 $ ruby script/generate email_spec ここで生成されるfeatures/stepdefinitions/emailsteps.rb
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く