• ベストアンサー

SMTPでメール送信するメールフォーム

Perlを学んでまだ数ヶ月の初心者ですが、今SMTPを用いたメールフォームを作ろうとしています。 sendmailを用いたものは、色々な参考書などを参考にして何とかできたのですが、SMTPの方はよく分からず困っています。 SMTPでメール送信するにはモジュール(Net::SMTP)を使わないといけないのですか? またモジュールを導入しようと試みたのですが、難しくて分かりませんでした(モジュールの設置場所なども)。 こちらの方も分かる方がいらっしゃいましたら、教えて頂けると幸いです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • galluda
  • ベストアンサー率35% (440/1242)
回答No.1

がると申します。 んっと。Net::SMTPを「絶対に」使わなきゃいけないわけじゃないんですが、使ったほうが楽に実装できるのは確かです。 設置自体は、cpanのインストール手順に従えばインストールできるので。そのサーバのroot権限がゲットできるようであれば、あとはgoogleあたりでcapnとインストールの検索文字で検索すると色々と出てくるかと。 ちなみに使わない場合、 ・何らかの手段でsocket通信を自力で実装 ・何らかの手段で「ドメインからMXレコードの値を取得」を実装 しなければいけません。 また、これはモジュールを使っても一緒ですが。 4xx系の「今だめだから後でまた送ってみてね」系のエラーへの対応策とかも考えておくとよいと思います。

mintea86
質問者

お礼

素早い回答ありがとうございます。

mintea86
質問者

補足

Net::SMTPを使わない場合はその実装というのを両方ともやらないといけないのですか? 正直、socket,MXコードの意味すら分かりません…socketは少し聞いたことあるのですが。 以下のページを見てみたのですが、このスクリプトを見ると、use Socketとあるので、Net:: SMTPみたいにcpanという所からソケットモジュールをダウンロードしなければいけないのですか? 本当にバカバカしい質問で呆れますが、教えてもらえると大変助かります。 よろしくお願いします。

その他の回答 (2)

  • galluda
  • ベストアンサー率35% (440/1242)
回答No.3

がるです。 んっと、Net::SMTPを使わない場合は「双方共に」実装しなければいけません。 物凄く簡単に書くと、Socketというのは「通信するための道を作って実際に通信する」ための手法で、MX云々は「そのメールをどこに送ればいいのかを認識するための手段」です。 一応、Perl自身がsocket関数を所持しているので、頑張れば、cpanのモジュールをインストールしなくても実装は可能です。 なんとなく、拝見していると「出来るだけcpanモジュールを使わずに」という感じがするのですが。 基本的には、spanモジュールを使わなくても実装は「可能」です。ただ、spanモジュールは「普通に毎回実装すると面倒だから簡単便利になりますように」って作られているものが多いので、つまり、cpanを使わないと「面倒な実装を自力で」やらなければいけない可能性が高くなります(苦笑 以上、なにかの参考にでもなれば幸いです。

mintea86
質問者

お礼

がるさん、本当に親切にありがとうございます。

mintea86
質問者

補足

そうなんです…できるだけモジュールには頼らないで作りたいんです(ちょっと事情がありまして)。しかしながら、初心者なので、実際問題として、「面倒な実装を自力で」というのは難しいですね(汗)とりあえずは、モジュールを用いてきちんと送信できるスクリプトを作ってからの方が良さそうですね…

回答No.2

komorebi99と申します 私もPerlのメール送信で頭を抱え、こちらのQ&Aサイトで質問させていただきました。(QNo.1850496) SMTPモジュールでメールを送信を行うことについては私は河馬屋さんのサイトを参考にさせていただきました。 こちらには、必要となるパッケージの一覧も記載されています。 http://homepage3.nifty.com/hippo2000/perltips/perlmail.htm モジュールのインストールについては使用するサーバーによっても異なりますのでが、次のページは参考になると思います。 http://digit.que.ne.jp/work/index.cgi?Perl%a5%e2%a5%b8%a5%e5%a1%bc%a5%eb%2f%a5%a4%a5%f3%a5%b9%a5%c8%a1%bc%a5%eb%28CPAN%29

mintea86
質問者

お礼

遅くなりました。 早速そのページを見てみました。とても参考になりました。ありがとうございました。これをもとにやってみます。

関連するQ&A