タグ

2016年12月13日のブックマーク (23件)

  • GitHub - ryanb/letter_opener: Preview mail in the browser instead of sending.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - ryanb/letter_opener: Preview mail in the browser instead of sending.
  • Railsでバウンスメール処理

    こんにちは、tahara です。 Rails システムでのバウンスメール処理ってどうするのがいいんでしょう? ベステプラクティスではないかもしれませんが、弊社でのバウンスメール処理方法を書いてみたいと思います。 まずメーラークラスで return_path にバウンスメール受信用のアドレスを指定します。 class Notifier < Jpmobile::Mailer::Base # ActionMailer::Base include BouncedMailFilter default(from: 'from@expamle.com', return_path: 'bounce@example.com') ... end 上記メーラークラスで include しているクラスでは、 バウンスメール DB にメールアドレスが登録されているかチェックして、 登録済みのアドレスにはメールを送信

  • Rails×SES バウンスメール(不達メール)対策 - コピペコードで快適生活

    SESで不達メールが多いから、対策してくれなかったらSES止めるよ」って過去にAWSから言われたことがあって、そのときの対応メモを書きだしてみた。 対応の基的な流れ SESは不達メールがあった場合に特定のURLに対してリクエストをjson付きで投げてくれるので、それを特定のURLでうけてJSONパースして、そのパースしたJSONの中にメールアドレスがあるので、それをブラックリストテーブルか何か作ってINSERTして、メール送信の時はそのブラックリストテーブルを見て、送っていいメールアドレスいいか判定するって感じ。 AWSの設定はここを参考に。 Amazon SESのBounce SNS通知をRailsで処理する|WEBデザイン Tips Railsのソースはこんな感じ。 app/controllers/api/aws_controller.rb # # AWSから飛んできたリクエストを

    Rails×SES バウンスメール(不達メール)対策 - コピペコードで快適生活
  • Amazon SESによるメール送信環境の構築と実践 | DevelopersIO

    Amazon SES を利用してメール送信する際に必要となるスパム対策の基礎知識と、環境構築や利用申請の方法については具体的にステップ・バイ・ステップで説明します。SESのメール送信では、SESの利用方法や応用例をご紹介します。 SES とは Amazon SESSimple 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、PHPPythonRuby、および G

    Amazon SESによるメール送信環境の構築と実践 | DevelopersIO
  • https://morizyun.github.io/blog/aws-ses-rails-action-mailer/

  • Amazon SESとSNSを利用してバウンスメールを自動的にハンドリングする - $shibayu36->blog;

    メールを送るアプリケーションを作成していると、使われていないメールアドレスで登録された時や、携帯のメールアドレス変更によって登録されているメールアドレスが使えない状態になって、メール送信時にバウンスメールとして返ってくることがある。この時バウンスメールとして返ってくるメールアドレスをアプリケーション側で無効にするなどしておかないと、メール送信の無駄が発生する。また、AWS SESを使っている場合、バウンス率が高くなった場合、規制されることもある( https://docs.aws.amazon.com/ja_jp/ses/latest/DeveloperGuide/e-faq-bn.html )。 今回は、AWSを利用してバウンスメールとして返ってきたメールアドレスを自動的にハンドリングするというのをやってみたので、それを書いてみる。 前提 今回はAWS SESを利用して、メールを送信して

    Amazon SESとSNSを利用してバウンスメールを自動的にハンドリングする - $shibayu36->blog;
  • AWS SESの通知(バウンス、苦情、配信)を自動で取得し、保存 - Qiita

    SESの通知管理の重要性 AWS SESの通知には、バウンス、苦情、配信がありますが、 これらの中でも、一番重要なのは、バウンスではないかと思われます。 AWS SESのハードバウンスに対する対応は、なかなか辛辣です。 一度ハードバウンスが返却されれば、 Suppression Listにメールアドレスが登録されます。 AWSのコンソールでSuppression Listからメールアドレスを削除しなければ、 その宛先に対し、最大2週間メール送信することができなくなります。 また、送信メールのバウンス率が高くなると、 SESのサービスそのものを止められてしまいます。 こういったリスクを最小限に止めるためにも、 バウンスの管理は非常に重要と言えます。 また、来、バウンスと苦情を管理できなければ、 サンドボックス制限を解除してはいけません。 通知の受け取り方 管理については、以下のドキュメント

    AWS SESの通知(バウンス、苦情、配信)を自動で取得し、保存 - Qiita
  • Amazon SESとは? - Amazon Simple Email Service

    翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。 Amazon SESとは? Amazon Simple Email Service (Amazon SES) は、ユーザー自身の E メールアドレスとドメインを使用して E メールを送受信するための、簡単でコスト効率の高い方法を提供する E メールプラットフォームです。 例えば、特価販売などのマーケティング E メールや、注文確認などの取引 E メール、ニュースレターなどのその他のタイプの通信文の送信に使用できます。Amazon SES を使用してメールを受信するときは、E メール自動応答システム、E メール登録解除システム、受信 E メールからカスタマーサポートのチケットを生成するアプリケーションなどのソフトウェアソリューションを開発できます。 Amazon SE

  • SESを利用するにあたり必要な認識と対策(特にバウンス) - temporal's diary

    AWSSESを利用するにあたり、あらかじめ認識しないといけないことが2つあると思います。 場合により、SESを利用する権利を一時停止されてしまうことがある 権利を一時停止されてしまった(もしくは警告を受けた)際には、その原因を自分で調査して、AWSに原因と対策を英文で報告する必要がある また、あらかじめ以下いずれかの設定をしておく必要があります。(バウンスが多いために権利一時停止や警告を受けた場合原因調査のため) メール送信プログラム側でReturn-Pathを指定し、Return-Pathに対して返信されたメールを調べる(デフォルトではSourceアドレスに対して返信) Feedback NotificationsにてBounces SNS Notificationを指定し、SNS経由で通知されたバウンス情報を調べる 権利一時停止や警告を受けてしまった際に、主にAWSのUSのフォーラム

    SESを利用するにあたり必要な認識と対策(特にバウンス) - temporal's diary
  • Rakeタスクの賢いロギング - Qiita

    やりたいこと すべてのRakeタスクの前後で、開始と終了のメッセージを表示したい。 毎回出るのは陶しいので、指定したときだけ表示したい。 いろんなところにpとかRails.logger.infoのような処理を書きたくない。 実装 desc "Setup an account" task setup_account: %i(common) do logger.debug "creating account..." logger.info "created account!" end # Extend logger to the main object def logger Rails.logger end desc "Setup a common setting for every tasks" task common: %i(environment) do Rails.logger =

    Rakeタスクの賢いロギング - Qiita
  • ドキュメント指向データベースと列指向データベース

    ドキュメント指向データベースの概要 リレーショナルデータベースでは、データを表形式で保存します。そのため、表にしやすいデータであれば、効率よく管理することができます。 しかし、世の中全てのデータを表にできるかと言えば、そうではありません。そのようなデータをリレーショナルデータベースで管理しようとすると、どうしても無理が生じてしまいます。その結果、プログラムを組むのが難しくなったり、処理に時間がかかるようになったりしてしまいます。 このような中で、柔軟な構造でデータを扱えるようなデータベースとして、「ドキュメント指向データベース」と呼ばれるデータベースが出てきました。 ドキュメント指向データベースでは、1件分のデータを「ドキュメント」と呼びます。また、個々のドキュメントのデータ構造は自由で、データを追加する都度変えることができます(図1)。リレーショナルデータベースとは違って、事前にテーブル

  • 今更Redisのsorted set を知ってリアルタイムランキングの実装が超楽だった件 - Qiita

    最近ランキングを実装する機会があって、どうやって実装しようかって話をしていたら、@attakei さんがRedisのsorted set使うと楽よ!って教えてくれたので、使ってみたら超楽ちんでした 2年位前に流行ったんですね、知らんかった。 旧時代の実装 私がゲーム制作していた時代は、ランキングというと一定時間ごとにバッチを回して、ランキングテーブルにソート済みのデータを流しこむという感じの実装でした。 おかげで、ユーザー参照用とバッチ作業用の二つのランキングテーブルと、ランキングテーブルを切り替えるためのスイッチングテーブルが必要になったり、バッチ流す必要があったり、とにかく面倒くさかったように覚えています リアルタイムなんて、いちいち全ユーザーの集計をしてデータをソートして順位を割り出すことになり、そんなことは無理な話でした Redis の sorted set ところが、時代は変わる

    今更Redisのsorted set を知ってリアルタイムランキングの実装が超楽だった件 - Qiita
  • Redisにできることとその限界、そしてデータ構造の基本 - Qiita

    まずは繰り言だ! データ構造って、一番大まかに言って、同種のデータ同士の関係と、異種のデータ同士の関係がある。人同士の関係、出来事同士の関係、等が前者だとすれば、人と性別の関係とか、人と所属サークルの関係、なんていうのが後者だ。 で、その一番ざっくりした関係に加えて、ある向きに1対1の関係なのか1対多の関係なのか、逆方向に1対1の関係なのか1対多の関係なのか、というのがあって、これによって、それぞれ3通りに分類される。4通りではないのは、「ある向きに1対1、逆向きに1対多」と「ある向きに1対多、逆向きに1対1」とは同値だからだね。 でもって、これらの関係を持ったデータ群に対して、CRUDという基操作がある。ここまでで完結するなら、それはRedisで充分、ということだ。 さらに次のレベルは、集合演算、順序付け、値の加減算、値の乗除算やその他の演算、変更可能なものとそうでないもの、など、デー

    Redisにできることとその限界、そしてデータ構造の基本 - Qiita
  • Redisに用意されたデータ型とその扱い | Sojiro's Blog

    # Redisで扱えるデータ型StringListSetSorted SetHash# String文字列型 文字列や数値など、Keyに対して1つに定まる値。 # 値のset set [key_name] [value] # 1つのkey-valueをsetする mset [key_name_1] [value_1] [key_name_2] [value_2] # key-valueの組を複数setする

  • Elasticsearchの"Aggregations"を使って SQLの"Group by"を置き換える - Qiita

    はじめに Elasticsearchのv1.0.0 が無事リリースされ、Aggregations APIの利用が可能になりました。 Elasticsearchはこれまで、検索結果を集約して解析する仕組みとしてFacets APIを提供していましたが、実質SQLのGroup byでのcountに相当する機能しかなかったため、maxやavgといった複雑な条件で集約を行いたい場合、クエリを分けて集約したり解析したりするしかありませんでした。 v1.0.0でAggregations APIが提供されたことで、maxやavgはもちろん、日付でヒストグラムを取得するといった複雑な集約も楽に行えるようになり、SQL型検索エンジンからの置き換えも行いやすくなってきたのではないかと思います。 内容 Aggregationsで何ができるのか、SQLのGroup byとの置き換えを例に検証してみましたので、その

    Elasticsearchの"Aggregations"を使って SQLの"Group by"を置き換える - Qiita
  • 集計はRDBばかりに頑張らせるのをやめると幸せになれる。 - Qiita

    はじめに 各種のDB中の集計作業を行うにあたって、以下のようなデータをどうしても扱わなければならない場合は、SQLのみで完結させないことを検討しなければ、サーバリソースを大量に消費した挙句、何時まで経っても作業が完了しないということが有ります。 SQL操作だけに頼らないことを検討したい集計例 explainすることで大体の傾向はわかりますが、おおよそ以下のような要素を含む集計が対象となります。 対象のレコード数が巨大である(数百万レコード以上) DBの余剰リソースにもともと余裕が無い indexのふられていない項目で集計/joinしなければならない join対象の項目がやけに多い not in 巨大なサブクエリ is null group by like etc... ではどうするか? 集計対象のレコードを一旦ファイルに吐き出した上で、ファイルベースの処理をしてしまいましょう。 実践例1

    集計はRDBばかりに頑張らせるのをやめると幸せになれる。 - Qiita
  • “yum list”コマンドでパッケージのリスト、バージョンを確認 | VPSサーバーでWebサイト公開 備忘録 ~Linux、MySQLからAJAXまで

    “yum list”コマンドで、現在インストールされているパッケージのリスト、バージョン、アップデート可能なパッケージのリスト・バージョン、これからインストールしたいパッケージのバージョンを調べたりする事ができます。 ※目次をクリックすると目次の下部にコンテンツが表示されます。 1.”yum list”コマンドの出力形式 2.すでにインストール済みのパッケージのリストを表示 3.アップデート可能なパッケージのリストを表示 4.リポジトリより古くなっているパッケージのリストを表示 5.これからインストールしたいパッケージを調べる場合 6.ある特定のパッケージを調べたい場合 ○出力形式 name.arch [epoch:]version-release repo or @installed-from-repo 左から、”パッケージ名.アーキテクチャー”、”リリース番号”、”どのリポジトリからイ

  • データ集計に ActiveRecord を使ったらこうなったという話 - Qiita

    CrowdWorks Advent Calendar の9日目に入るはずだったポストです。元々は、問題提起とその解決篇をセットにしてご紹介するつもりだったのですが、話が壮大になりすぎて僕の文章力ではまとめきれずに挫折した挙句に〆切に間に合わなくなってしまいました リベンジとして、問題提起の部分だけをピックアップしてご紹介する形にします。解決篇はバッサリ省略。どこか別のポストで紹介できればと思います。アドベントカレンダー的には数日遅れで申し訳ないですが、何かのご参考になれば。 結論 先に結論から書きます。 データ集計で ActiveRecord は忘れろ 用途に合った適切なツールを使おう 前提 ここで言う「データ集計」というのは、だいたいこんな感じのモノを指しています。 サービスのデータベース (RDB) に蓄積された情報を取り出してきて 日次や月次の数字を表とかグラフの形式で見えるようにし

    データ集計に ActiveRecord を使ったらこうなったという話 - Qiita
  • Ansibleでファイルの行を書き換える3つの方法 - Qiita

    - name: "設定の修正(1)" lineinfile: >- dest='/path/to/file/' state=present backrefs=yes regexp='^#?\s*ServerTokens' line='ServerTokens Prod' dest: 書き換える対象のファイル state=present: 「この行があるべき」ことを示す backrefs=yes: 正規表現内のバックスラッシュが使えるように regexp: 書き換えたい行にマッチする正規表現 line: 書き換えたい内容 他にもオプションがいろいろあるので、詳細は公式ドキュメントをどうぞ。 ひとつのファイル内で複数箇所を書き換える場合は、with_itemsと組み合わせます。 - name: "設定の修正(2)" lineinfile: >- dest='/path/to/file' sta

    Ansibleでファイルの行を書き換える3つの方法 - Qiita
  • いますぐ実践! Linuxシステム管理

    「いますぐ実践! Linux システム管理」はこちらです。 メルマガの解除、バックナンバーなども、以下からどうぞ。 https://www.usupi.org/sysad/ (まぐまぐ ID:149633) その他、作者に関するページは、概ね以下にございます。 https://www.usupi.org/kuri/ (まぐまぐ ID:126454) http://usupi.seesaa.net/ (栗日記ブログ) https://twitter.com/kuriking/ (twitter) https://facebook.com/kuriking3 (facebook) https://jp.pinterest.com/kuriking/pinterest) https://www.instagram.com/kuri_king_/ (instagram) [バックナンバーのトップへ

  • 閏秒を迎えるにあたってLinuxでは何を対策すべきか? | Act as Professional

    2016/12/27 更新Googleなどの大手IT企業がうるう秒対策済のNTPサーバが公開したため、これを利用する内容などを以下にまとめました。 元旦に実施される うるう秒の対策 まとめ2016/07/08 更新2017/1/1に閏秒の実施が決定されました。対応はこの記事のとおりで問題なさそうです。 2015/06/24 情報追加(2015/06/29 更新)下記の対応に関わるntpdの比較的新しいバージョンにSLEWモードで動作していても、うるう秒が挿入されるバグが発見されました。[redhat] これによりntp-4.2.8p3-RC1以降のバージョンでないとSLEWモードで動作していてもうるう秒が挿入されます。RedHatはntp-4.2.6p5-3.el6_6という対応済みのバージョンを提供しています。Ubuntuでは今日現在12.04LTS, 14.04LTSの2バージョンはパ

    閏秒を迎えるにあたってLinuxでは何を対策すべきか? | Act as Professional
    kadoppe
    kadoppe 2016/12/13
  • うるう秒を体感する | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、インフラエンジニアの末廣です。 通常、Linux ではタイムゾーン情報として /usr/share/zoneinfo/Asia/Tokyo が用いられますが、これはうるう秒に対応していません。

  • 稼働中のバッチを監視したくなったら Mackerel Custom Metrics が便利 - Qiita

    この記事は Mackerel Advent Calendar 2016 の 12/13 日の記事です。 はじめに 皆さんは golang で書かれたプロセスの監視はどの様に行われているでしょうか。builderscon 2016 でも登壇された Dave Cheney 御大の gcvis をお使いでしょうか。 確かに gcvis は便利なのですが一つ悩ましい点があり、gcvis 自信がプロセスを起動しないといけないという点にあります。作り上致しかたないのですが、コマンド引数にて起動するプロセスを指定する仕様になっています。つまり起動には gcvis が必要になるのです。監視の際にアプリケーションを止められるのならばいいのですが、そうでないときは使えない事もあります。 ところで昨日 golang で書かれたプロセスを監視/操作するためのツール「gops」をご紹介しました。 この gops で

    稼働中のバッチを監視したくなったら Mackerel Custom Metrics が便利 - Qiita
    kadoppe
    kadoppe 2016/12/13