- 締切済み
Net::SMTPでメールを送信したいが、サーバーに接続できない
メールフォームからメールを送信することについて、 FENICSメール(富士通株式会社)でNet::SMTPを使用してメールを送信しようと考えています。 お問い合せでNet::SMTPでメールを送信する場合、smtp authの認証が必要だとわかりまして、下記のサイトを参考にして組みましたが、 メールが送信されませんでした。 http://d.hatena.ne.jp/yoshifumi1975/20060831/1156975960 色々と調べてみた結果、最初の $smtp = Net::SMTP->new('SMTPサーバ', Hello=>"SMTPサーバ"); の文で$smtpに値がなく、サーバーに接続できてませんでした。 参考サイト)http://tech.bayashi.net/pdmemo/sendmailbyperl.html でも、smtp情報はメーラーで問題なく設置できましたので、 サーバー情報、認証には間違いはないと考えられます。 Net::SMTPは使えているのにどうしてsmtpサーバーに接続できないのか わからずにいます。 初歩的で恐縮ですが、ご回答お待ちしております。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- t-okura
- ベストアンサー率75% (253/335)
Net::SMTP->new のパラメータに、Debug=>1 を追加すれば、 うまくいかない原因がわかりそうです。
- sakusaker7
- ベストアンサー率62% (800/1280)
> 「モジュールを入れる」と言うのは、サーバーにAuthen::SASLモジュールをインストールする言うことでしょうか? そうです。 > もし、そうであれば、このサーバーは自由にインストールしたり出来ない環境にあります。 > サーバーにインストールせずにAuthen::SASLモジュールを使用する場合は、use とか require すればよろしいでしょうか? use とか require で取り込むためにインストールが必要なんですけど。 Digest::MD5 とか Digest::SHA1 あたりがあればファイルのコピーで澄みそうですけどどうですか?
お礼
ご回答ありがとうざいます。 Digest::MD5 、 Digest::SHA1 の確認をしましたが、Digest::MD5がインストールされていました!!!(嬉 感謝致します! またまた、質問ばかりで申し訳ありませんが、コピーするというのは どうすればよろしいでしょうか? 度々すみませんがよろしくお願いします。 【確認したプログラム】 ---------------------------------------------------------- #!/usr/local/bin/perl -w use Net::SMTP; use Digest::MD5 qw(md5 md5_hex md5_base64); use strict; my $smtp = Net::SMTP->new('smtpサーバー名'); print my $smtp->domain,"\n"; my $smtp->quit; 【エラー文】 Can't call method "domain" on an undefined value at ./ファイル名.cgi 行番号 7. ----------------------------------------------------------
- sakusaker7
- ベストアンサー率62% (800/1280)
> 真に恐縮ですが、参考となるホームページなどございませんでしょうか。 何の参考でしょうか? モジュールをいれればいいだけだと思うのですが、Perlのみのコードで smtp auth を通すコードですか?
お礼
ご意見ありがとうございます。 伝達不足で申し訳ございません。 ------------------- 「モジュールを入れる」と言うのは、サーバーにAuthen::SASLモジュールをインストールする言うことでしょうか? もし、そうであれば、このサーバーは自由にインストールしたり出来ない環境にあります。 サーバーにインストールせずにAuthen::SASLモジュールを使用する場合は、use とか require すればよろしいでしょうか? よろしくお願いします。 -------------------------------------------------------- こちらに目的と、作業手順を追って挙げます 【目的】メールフォーム(Perl)の設置 1.$smtp = Net::SMTP->new('stmpサーバー', Timeout=>60, Debug=>0); でメールサーバーに接続し、 2.$smtp->auth($user, $passwd)で認証をクリアしてメールを送信したい。(※このサーバーは認証が必要です。) 【問題点】 ・$smtp = Net::SMTP->new・・・の時に「$smtp」に値が入らない。 他のサーバーではキチンと値が返ってきたのですが・・・
- sakusaker7
- ベストアンサー率62% (800/1280)
これと同じ原因とか Net::SMTP->auth - World Wide Walker http://yoosee.net/d/archives/2004/08/25/002.html
お礼
早速のご回答ありがとうございます。 早速上記のURLで確かめましたが、以下のエラーが 返ってきました。 --------------------------------------------------------- Can't locate Authen/SASL.pm in @INC (@INC contains: /usr/local/lib/perl5/5.8.0/sun4-solaris /usr/local/lib/perl5/5.8.0 /usr/local/lib/perl5/site_perl/5.8.0/sun4-solaris /usr/local/lib/perl5/site_perl/5.8.0 /usr/local/lib/perl5/site_perl .) at ./ファイル名.cgi 行番号 113. BEGIN failed--compilation aborted at ./ファイル名.cgi 行番号 113. --------------------------------------------------------- どうやら、Authen::SASL;がサーバーに無い様です。 Perlのバージョンは5以上でしたが、標準的なモジュールしか インストールされていないとの事でした。 真に恐縮ですが、参考となるホームページなどございませんでしょうか。 よろしくお願いします。
お礼
t-okuraさん アドバイスありがとうございます。 参考にさせていただきます。