質問: SMTPとPOP以外のメールに関する知識は皆無です。 本当に基礎が理解できていません。 ご了承ください。 Rubyでメールを送りたいです。 リファレンス を参考を参考に作りました。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/584dc9c008287f4c2cf72ba916e94c67.png) ``` require 'net/smtp' Net::SMTP.start('smtp.exmaple.com', 25) {|smtp| smtp.open_message_stream('from@example.com', 'to@example.net') {|f| f.puts 'From: from@example.com' f.puts 'To: to@example.net' f.puts 'Subject: test mail' f.puts f.puts 'This is test mail.' } } ``` **質問1** ``` smtp.open_message_stream('from@example.com', 'to@example.net') ``` 上記の中に ``` from@example.comやto@example.net ``` とありますが この@に続くものは そのメールのアカウントを管理しているサーバー(会社?)のドメイン であり、 例えば下記 ``` sample@ezweb.ne.jp ``` 上記のものはezweb.ne.jpというドメイン(会社?)が保有している sampleという名前のアカウントである・・・ということですか? **質問2** 上記のことを踏まえて自分のメールアドレスから自分へ送るように 改変させてみました。 ``` require 'net/smtp' Net::SMTP.start('222.15.69.195', 25) {|smtp| smtp.open_message_stream('matsu-kazu4@ezweb.ne.jp', 'matsu-kazu4@ezweb.ne.jp') {|f| f.puts 'From: from@ezweb.ne.jp' f.puts 'To: to@ezweb.ne.jp' } } ``` (認証とかで実際には送れないみたいだが・・・) 一応使い方としては合っていますでしょうか? ``` Net::SMTP.start('222.15.69.195', 25) {|smtp| ``` 上記のアドレスは ``` >nslookup ezweb.ne.jp サーバー: apdcfb02e4bc3a Address: 192******** 権限のない回答: 名前: ezweb.ne.jp Address: 222.15.69.195 ``` nslookupコマンドで調べました。 分からないので参考になるリンクまたは説明をお願いします。
回答: 質問1.合っています。 というか、これを人に聞くというのは、「メールアドレスとは何であるか」を知らないと言うことなんでしょうか? 質問2.下記のように25番ポートを使えるSMTPサーバーを使うなら、プログラムは合っています。 > > nslookupコマンドで調べました。 > > > いちいちIPアドレスを調べなくても、ホスト名を書けばいいです。 インターネット上にサーバーを借りて、そこにちゃんと配送できるように設定したSMTPサーバーを自分で作れり、そのサーバー上で動かすのであれば、このプログラムで良いですが、そうでは無いですよね? 自宅から送る場合は、プロバイダーのメール設定解説ページを参考にして、プロバイダのSMTPサーバーにおそらく587番ポートを使って、プロバイダのIDとパスワードで認証した上で送る必要があります。 迷惑メール対策がされているためです。