メール送信機能部分を作成しているのですがちょっと困ったことが
起きましたので、みなさんのお力を貸していただければと思います。

環境は、本番はFreeBSDなのですが、設定が完了していない為
ウチにありますWinNTでCGI部分だけ動作させています。
その為、本番機ではSendMailが使えるのですが、ウチのサーバーでは
使えないため、Net::SMTPを使って送信しようと思ったのですが・・・。

ウチのメールサーバー(ExchangeServer)でスパムメール対策のため
セキュリティを掛けているので、認証されていないとメールが
送信されない設定になっています。

Net::SMTPやBasp21の設定方法が載っているページはたくさんあるのですが
認証用のIDとPWをどこに書き込むのかが書いてあるサイトが見つけられませんでした。

ASP(ActiveServerPages)でBasp21を使った時は、Fromのアドレスの後ろに
IDとPWを入れれば、認証されたので同様にしてみたのですが、送信されませんでした。

これだけの情報で回答いただけるかわかりませんが、みなさんにお力を貸して
いただければ幸いです。
どうか、宜しくお願いしますm(_ _)m

このQ&Aに関連する最新のQ&A

A 回答 (2件)

windows の perl の場合 ppm を使って Bundle-libnet をインストールしてください。


C:\> ppm
PPM> install Bundle-libnet

プロクシでしか外部とアクセス出来ない場合は ppm を実行する前に
C:\ set http_proxy=http://proxyserver:port/
を実行しておいて下さい。

この回答への補足

再度、ご回答ありがとうございました!

でも、なぜかPPMでのインストールができませんでした。
※モジュールがないといわれてしまいました・・・。

もう一度実験したいと思います。

補足日時:2002/04/19 07:34
    • good
    • 0

Net::SMTP に auth ってのが有りますが使えませんか?


$m = Net::SMTP->new('mailhost');
$m->auth( USERNAME, PASSWORD );

この回答への補足

回答ありがとうございました。
せっかくお答えいただいたのですが、
unpackegeといわれてしまいました。

現在は、対策として仮メールサーバーを立てて
なんとか、メールを送信していますが・・・。

いずれまた、この壁にぶちあたると思いますので
引続き、ご回答をお待ちしております。

補足日時:2002/04/08 00:13
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qプロバイダー変更で初期設定アカウントで送信できな

プロバイダーをOCNからBIGLOBEに変えて、設定もしてもらいました
で、メールを送信してみると出来ません
調べてみると「送信」の隣の「アカウント」がOCNとBIGLOBEの2つあり、OCNの方にチェックされています
BIGLOBEにチェックを入れると送信できるのですが
初期設定がOCNになってままなので、送信する度にアカウントをチェックし直さなけえばいけません
この場合、どこでどう設定し直せばよいのでしょうか?
OCNのアカウントは削除してしまって良いのでしょうか?

Aベストアンサー

キャリアメール(プロバイダメール)を使っている場合、プロバイダを変更すると、メールアドレスを変更をするか、しないかを、「最初に」考える必要が有ります。
48946 さんは、メールアドレスが変更を、考えずに、プロバイダの変更をしたのですか?。


> 調べてみると「送信」の隣の「アカウント」がOCNとBIGLOBEの2つあり、OCNの方にチェックされています

引き続き、キャリアメール(プロバイダメール)を使いたいのですね。
プロバイダをOCNからBIGLOBEへ変更して、メールソフト名が不明のメーラー(メールソフト)のアカウントでOCNにチェックがある為、OCNのアカウントが優先で送信します。
しかし、プロバイダのBIGLOBEOCNでは、OCNメールアドレスの設定が無いから、「OCNの設定」で送信することが出来ないのです。


> BIGLOBEにチェックを入れると送信できるのですが、初期設定がOCNになってままなので、送信する度にアカウントをチェックし直さなけえばいけません

OCNのメールアドレスを使いたいのなら、「OCNのプロバイダ契約」も残すことが必要だったのです。
つまり、OCNからBIGLOBEの二重契約が必要です。

OCNの契約が残っていれば、メーラー(メールソフト)が質問文有りませんので分かりませんが、OE(アウトルックエクスプレス)とか、Windowsメールとかなら、OCNのアカウントの方へ「既定」を設定です。

OCNの契約が無ければ、メーラー(メールソフト)のアカウントのOCNの「既定」を外して、BIGLOBEの方へ「既定」を設定するしかありません。

どうしても、OCNのメールアドレスを使いたいならば、プロバイダのOCNの契約をするしかありません。


> OCNのアカウントは削除してしまって良いのでしょうか?

私のすぐ上の回答の様に、48946さんが、キャリアメールのOCNのメールアドレスが、必要か不要かをお考えになって、不要と思いならば、削除してもいいでしょう。

-------------------------

キャリアメール(プロバイダメール)のほかに、フリーメール(無料メール/Webメール)と言うものがあります。
フリーメールは、インタネットが接続できるなら、パソコンを変えても違っても、他人のパソコンでも、世界中の何処でもメールの送受信が可能です。

ただし、欠点は、ID/PWがパソコンに残るのでセキュリティに注意することが必要です。(他人のパソコンなら、履歴を残さずに削除すること)
また、捨てメールアドレス(捨てメアド)として、複数を同時に取得したり、一時的に取得後すぐ解除したり、使い捨てしたり等、通販・いたずら等の偽の申込等のセキュリティ対策で取得する人も居ます。だから、セキュリティレベルが高いサイト等では、フリーメールの登録を拒否する所もあります。

フリーメール(古いサイトなので、中には現在と違うことがあります)
http://rich-navi.com/freemail-3.html
http://enchanting.cside.com/hp/freemail.html
http://www.kooss.com/freemail/

キャリアメール(プロバイダメール)を使っている場合、プロバイダを変更すると、メールアドレスを変更をするか、しないかを、「最初に」考える必要が有ります。
48946 さんは、メールアドレスが変更を、考えずに、プロバイダの変更をしたのですか?。


> 調べてみると「送信」の隣の「アカウント」がOCNとBIGLOBEの2つあり、OCNの方にチェックされています

引き続き、キャリアメール(プロバイダメール)を使いたいのですね。
プロバイダをOCNからBIGLOBEへ変更して、メールソフト名...続きを読む

QMIME::LiteをSMTPで送信すると「ファイル番号が違います。」というリターンが帰って来る。

MIME::Liteパッケージについての質問です。

現在MIME::Liteパッケージを使用してメールを転送する
プログラムを作成しております。

メールは正常に送信できるのですが、MIME::Liteのsendメソッド実行後の"$!"に「ファイル番号が違います。」というメッセージが格納されます。これは何を意味しているのでしょうか?よろしくお願いします。

<コード>
#!/usr/bin/perl

# パッケージ指定
use Net::SMTP;
use Net::POP3;
use MIME::Lite;
use MIME::Base64;
use Jcode;

# メールcfgを読み込み
require "$ARGV[0]";

# メールサーバを指定
$MAILSERVER = 'hoge';

# コンテナを作成
my $msg = MIME::Lite->new(
From => "$FROM",
To => "$TO",
cc => "$CC",
Bcc => "$BCC",
Subject => "$SUBJECT",
Type => 'multipart/mixed'
);

# メッセージを追加
$msg->attach(
Type => 'text/plain; charset="iso-2022-jp"',
Data => "$MESSAGE"
);

# 添付ファイルが指定されているかチェック
if (! $FILEPATH eq "" ) {

# 添付ファイルが存在するかチェック
if (! -e $FILEPATH ) {

print "添付ファイル名:$FILEPATH\n";
exit 67;

} else {

# FILENAMEをGET
$NUM = rindex($FILEPATH,'/');
$FILENAME = substr($FILEPATH, $NUM+1);

# 添付ファイルを追加
$msg->attach(
Type => 'application/octet-stream',
Disposition =>'attachment',
Encoding => 'Base64',
Filename => "$FILENAME",
Path => "$FILEPATH"
);

}

}

# メール送信
$msg->send('smtp', $MAILSERVER);

if (! "$!" eq "" ) {

exit 68;

}

print "メールの送信が完了しました\n";

exit 0;

<環境>
OS:solaris 8
Perl:version 5.005_03

MIME::Liteパッケージについての質問です。

現在MIME::Liteパッケージを使用してメールを転送する
プログラムを作成しております。

メールは正常に送信できるのですが、MIME::Liteのsendメソッド実行後の"$!"に「ファイル番号が違います。」というメッセージが格納されます。これは何を意味しているのでしょうか?よろしくお願いします。

<コード>
#!/usr/bin/perl

# パッケージ指定
use Net::SMTP;
use Net::POP3;
use MIME::Lite;
use MIME::Base64;
use Jcode;

# メールcfgを読み込み
r...続きを読む

Aベストアンサー

そもそも、$!を使ってエラー判定してはダメなのでは。

MIME::Liteのマニュアルだと以下のように戻り値で判定してますよ:

$msg->send || die "you DON'T have mail!";

実際には例外(Carp:croak)を返す場合もあるので、evalで囲ったりする必要があると思います。

Qメールフォーム:「必須項目」も「送信完了」画面もどちらも設定したい

JavaScript初心者です。よろしくお願い致します。
JavaScriptを使用してメールフォームを作成しています。

「送信」ボタンを押した後、必須項目確認はJavaScriptで作成できました。
「送信」ボタンを押した後、「送信完了」画面(別ページに飛ぶ設定)もJavaScriptで作成できました。
しかし【どちらの動作も一緒に設定】しようとすると上手く動いてくれません。

FORMのonSubmit設定+「送信」ボタン自体に「送信完了」のアラート表示する方法も試してみたのですが「送信完了」アラートが先にでてしまったり…。

「送信完了」の方法は別ページリンクでもアラートでもかまいません。
必須項目+最後に「送信」を押して、送信された後の何かリアクションを入れる方法を探しています。

教えて!Gooも初心者で何か失礼がありましたら申し訳ありません!どうかよろしくお願い致します。

Aベストアンサー

#2です。

メーラーを起動するタイプなんですね。
ちょっと勘違いしてました。
「送信完了」画面がCGIで、そのCGIによってメール送信していると思ったので。

フォームタグを
<form action="mailto:●@メールアドレス●" method="post" Accept-charset="shift_gis" Enctype="text/plain" name="myform">

サブミットボタンを
<input type="button" name="button" value="送信" onClick="Check();" />

入力項目確認ファンクションを
function Check(){
if(document.myform.name.value==""){
alert("名前を入力してください。");
return false;
}
if(document.myform.email.value==""){
alert("メールアドレスを入力してください。");
return false;
}
document.myform.submit();
location.href="送信完了画面アドレス";
}

に変えてお試しあれ。

#2です。

メーラーを起動するタイプなんですね。
ちょっと勘違いしてました。
「送信完了」画面がCGIで、そのCGIによってメール送信していると思ったので。

フォームタグを
<form action="mailto:●@メールアドレス●" method="post" Accept-charset="shift_gis" Enctype="text/plain" name="myform">

サブミットボタンを
<input type="button" name="button" value="送信" onClick="Check();" />

入力項目確認ファンクションを
function Check(){
if(document.myform.name.value==""){
alert("...続きを読む

QMIME::EntityやNet::SMTPを使わずに、HTMLメールはできるのでしょうか?

perl5.6を使っています。
MIME::EntityやNet::SMTPを使わずに、HTMLメールはできるのでしょうか?

Aベストアンサー

Mail::Sendmail を使えば出来ます。
http://alma.ch/perl/Mail-Sendmail-FAQ.html#HTML

これは、pure perl なのでインストールする必要はなく
置くだけで使えます。

/cgi-bin/sendmail.cgi
------------------------
/cgi-bin/Mail/Sendmail.pm
↓を保存するだけ。
http://search.cpan.org/~mivkovic/Mail-Sendmail-0.79_16/Sendmail.pm

QThunderbird 「後で送信」の設定方法

Thunderbird Ver3.1.16 を使用しようとしてます。
従来は、OutlookExpress を使用していました。

送信トレイに、一時保存しておき、送信ボタンで、一括で送信したいのです。
すみませんが、
設定やアドインがあるのでしたら、御存知方、教えてください。
メール作成画面で、「後で送信(する)」指定があるのは分かりましたが、
その設定を、デフォルトにする方法が分かりません。
よろしくお願いします。

Aベストアンサー

メール作成画面で案が完成したら、メニューの「ファイル」>「後で送信」を選択すると「ローカルフォルダ」の共通送信トレイに置かれます。
複数の送信メールが置かれた「送信トレイ」の右クリック>「未送信メッセージを送信」から一括送信できます。

また、デフォルトの上の方法で対応できますが、送信予約が可能なSend Later3がありますから、必要でしたら試してみてください。
http://www.thunderbird-mail.net/addon/automail.html
https://addons.mozilla.org/ja/thunderbird/addon/send-later-3/

なお、余計なことですが、3.1バージョンは、3.1.17が最新ではないかと思いますので、ヘルプメニューからの更新をどうぞ。

QNet::SMTPでのメール送信について

Net::SMTPモジュールを利用してメール送信をしています。
複数の宛先にメールを送る場合に、

my ($smtp) = Net::SMTP->new($smtp_server);
$smtp->to('****@hogehoge.com', '**@mogemoge.com');

とすれば、複数に送れるのですが、

my ($mail_to) ='\'****@hogehoge.com\',\'**@mogemoge.com\'';
として
$smtp->to($mail_to);
とするとメールを送信することが出来ません。
何故でしょうか?教えてください。

Aベストアンサー

原因は$mail_toの中身がそのまま1つの引数として認識しているため
'****@hogehoge.com','**@mogemoge.com'
という1つの文字列がメールアドレスとされているからです。
Perlの仕様についてそれほど詳しくないのですが、おそらく、変数の評価を先に行い、その後に展開を行なっているので、引数が1つと認識しているためだと思います。

eval関数を使用して先に変数を展開してみるとうまく行くかもしれません。
例:
$smtp->to(eval($mail_to));

Q送信元アドレスを自由に設定できるメール送信専用ソフト。

送信元アドレスを自由に設定できるメール送信専用ソフトを探しています。パソで送信元のアドレスも携帯のメアドに偽装できるやつです。よろしくお願いしますm(_ _)m

Aベストアンサー

念のため、やり方も置いていきますね。

あくまで送信元の偽装なので、そのアドレスにメールを送っても届きません。

ツール→アカウント→メール→追加→メール

表示名:相手に表示させたい自分の名前
電子メールアドレス:相手に表示させたいアドレス
受信メールサーバー:なんでもよし(私はわかりやすくnothingとかにしてます)
送信メールサーバー:あなたがPCで使っているメールアドレスの送信サーバー
アカウント:なんでもよし(適当に@の前とかでいいです)
パスワード:なんでもよし(保存するのチェックを外せば空欄でいい)
で、完了。

その後、ツール→アカウント→メール→該当アカウント(受信サーバーが表示されてます)をダブルクリック
全般→一番上のボックスに受信サーバーが表示されていますが、これをわかりやすい物に変えましょう
一番下の受信時および同期時にこのアカウントを含むのチェックを外しましょう。
OKで完成。

メールを送るときに送信者をこのアカウントに変更して送れば、偽装アドレスで送信できます。

QNET::SMTPについて

おねがいします。
NT環境からperlでメール送信したいと思っています。
NET::SMTPをPPMでダウンロードしました。
以下のサンプルプログラムを得て、SMTPサーバ名など
を入れました。でも、エラーにはなりませんが送信されず。
そもそも、IDとpassの認証部分がないですよね。
このサンプルだと「SMTPサーバ名さえわかれば誰でも
そのSMTPサーバからメールできちゃう」ってことに
なりませんか??
他の方の質問にあった、
$smtp->auth( USERNAME, PASSWORD );
も試しましたが、エラーになりました。
認証うける方法があるのでしょうか?

よろしくおねがいします。

#!/usr/local/bin/perl -w

use Net::SMTP;

$smtp = Net::SMTP->new('mailhost');

$smtp->mail($ENV{USER});
$smtp->to('postmaster');

$smtp->data();
$smtp->datasend("To: postmaster\n");
$smtp->datasend("\n");
$smtp->datasend("A simple test message\n");
$smtp->dataend();

$smtp->quit;

おねがいします。
NT環境からperlでメール送信したいと思っています。
NET::SMTPをPPMでダウンロードしました。
以下のサンプルプログラムを得て、SMTPサーバ名など
を入れました。でも、エラーにはなりませんが送信されず。
そもそも、IDとpassの認証部分がないですよね。
このサンプルだと「SMTPサーバ名さえわかれば誰でも
そのSMTPサーバからメールできちゃう」ってことに
なりませんか??
他の方の質問にあった、
$smtp->auth( USERNAME, PASSWORD );
も試しましたが、エラーになりました。
認...続きを読む

Aベストアンサー

あなたが指定したメールサーバは認証が必要なサーバなのでしょうか?
認証が無い場合は auth は必要ではありません。

> $smtp->mail($ENV{USER});

$ENV{USER} には正しいメールアドレスが設定されているのでしょうか?
ここにあなたのメールアドレスを設定しても送信できませんか?
多分ここでエラーになっているんじゃないかと思います。
$smtp->mail('あなたのメールアドレス');
としてテストしてみてください。

> 「SMTPサーバ名さえわかれば誰でもそのSMTPサーバからメールできちゃう」ってことになりませんか??
SPAM 対策をしていなければそういうことが出来ちゃいます。
POP before SMTP とか SMTP auth とか relay を禁止とか設定されていると思いますので
そのようなことは出来ないようになっていると思います。

Q複数のアカウントでどちらからでも送信可能な設定にするには?

メールのアカウントを2つ併用してます。
受信時は設定でどちらから接続しても双方とも受信できるのですが、
送信の際もどちらから接続しても送信出来るようにしたいのですが
設定が分かりません。どなたか教えて頂けませんか?

Aベストアンサー

はずしていたらすいません。
私も複数のプロバイダで4つのアカウントを
家族で使用しています
私の場合は、CATVのプロバイダで常時接続しており
フリーのメールソフトを使用していて特に接続先を切り
かえることはありませんが、それぞれを問題なく送受信
していますよ。
お使いのメーラーが分からないのでなんとも言えませんが
以前私がOEを使っていたとき、受信はどちらでもでき
ましたが送信についてはアカウントをいちいち設定して
面倒でした。 (ただ私が知らないだけで他の設定方法
があるかもしれませんが)
1度他のメール・ソフトを検討されてみてはいかがですか?
私は Edmax と言うフリーソフトを使っていますが
フリーとは思えないくらいの優れものです。
以下のURLからダウンロードできますので試してみて下さい。

参考URL:http://www.edcom.jp/

QNet::SMTPでメール配信できる限界件数

今Net::SMTPを使ってメール配信するプログラムを作っています。
簡単なメルマガ配信のようなものです。
プログラムではループを使って一件、一件配信するのではなく、bccで一斉に送ろうと思っています。
その時に、bccで送ることのできるMAX件数はいくらぐらいなのでしょうか?
実際に送る件数は300件を超えることはありません。

ご教示よろしくお願いいたします。

Aベストアンサー

メール送信はスパムとかDoSとかのはなしがあって制限が多くなっているので案外苦労したりします。

>ループで回して送信した方が、制限がない分いいですよね。

そうでも無くて、SMTPセッション数を制限している場合もあります。
1通のメールで宛先が300の場合、SMTPセッション数は1ですが、
宛先1つのメールを300通送るとSMTPセッション数は300です。
これが影響する場合もあります。(もちろんサーバのポリシー次第です)

現実的には制限を越えないぐらいの数で回すということになると思います。
例えば1通で宛先を50件として必要な回数回すような感じです。
また、ループもそのまま回すのではなく適切なWaitを入れる方が良いです。

余談ですが、
携帯メールに送信する場合は、宛先不明アドレスにも制限があるのでこちらもフォローする必要があります。


人気Q&Aランキング

おすすめ情報