質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Q&A

解決済

1回答

3647閲覧

送信先メールアドレスが存在しない場合の処理

ReiLeiLei1025

総合スコア236

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

0グッド

1クリップ

投稿2017/05/22 09:44

いつもお世話になっております。
RailsでWebアプリを作成しています。

rails runnerで
エクセルファイル内のリストからデータを読み込んで、Webアプリ内で利用するアカウントを作成し、その後、リスト内データのメールアドレスにメールを送信して送信が成功したらトランザクションを確定するようなコードを組みました。
メール送信に失敗したら、トランザクションをロールバックしています。

lang

1row = # エクセルから読み込んだデータ 2flag = false 3begin 4 ActiveRecord::Base.transaction do 5 # Userの生成 6 new_user = User.new(row) 7 new_user.skip_confirmation_notification! # メールをsave時に自動で送らない 8 new_user.save! 9 # MemberとStudentの生成 10 member_and_student_create(row,new_user) 11 # メール送信処理 12 send_password_instrunction_mail(new_user) 13 flag = true 14 end 15rescue Net::SMTPFatalError => e 16 # ログへの書き込みと画面出力 17 log_writer_and_puts(e) 18rescue => e 19 # その他例外処理 20end 21if flag 22 # アカウント生成成功処理 23else 24 # アカウント生成失敗処理 25end

正しいメールアドレスなら送信出来るというのは当然ですが、間違ったメールアドレスのとき、例外が発生する場合と、例外が発生しない場合があります。

lang

1config.action_mailer.raise_delivery_errors = true

configフォルダ内で上記のように設定してあるので、
外部のメールサーバーが即時配信を行っている場合はちゃんと例外が発生してくれています。

ただ、誤ったメールアドレスの場合に例外が返ってこないので、困っています。
(例:xxxxxxx@gmail.com.kikiki のような明らかに誤ったメールアドレスでも例外が発生しません。)

Deviseで生成したトークンを付与したリンク先から、ユーザ様自身でパスワードを設定してログインという流れを想定しているので、メール送信とアカウント作成で同期を取りたいという思いがあります。

telnetを叩いてメールアドレスの死活情報を取得なども出来るそうですが、メールサーバにログが残るということで気が進みません。
現状からどのような対応があるかお聞かせ頂けると有難いです。

環境

Ruby 2.3.1
Ruby on Rails 4.2.7

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

投稿2017/05/22 10:27

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ReiLeiLei1025

2017/05/23 00:33

情報ありがとうございます。 現状に必要な、とても、参考になる記事でした。 ベストアンサーとさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問