キャノネットというサーバーでフリーのメールフォームCGI設置を試みました、-fと-tオプション設定を行わなければならないみたいなのですが、今回使用したいCGIの初期設定ファイルsendmail指定部分下記に
#sendmailのパス
$init->{sendmail_path} = '/usr/local/bin/sendmail -t -f ' メールアドレス' ';
と指定しましたがCGIエラーとなってしまい、どうやらプログラム内を書き換える必要があるみたいなのですが、知識不足のため
どうやって変更するのかがわからず困っております。
お詳しい方、下記のプログラム内の変更部分をお教え下さい。
よろしくお願い致します。
(CGIはURLのものを使用しております。)
http://www.web-liberty.net/download/mailplus/ind …
--------------------------------------------------
package webliberty::Sendmail;
use strict;
use Jcode;
use webliberty::Encoder;
### コンストラクタ
sub new {
my $class = shift;
my $self = {
sendmail => shift,
send_to => undef,
send_from => undef,
subject => undef,
name => undef,
message => undef,
files => undef,
x_mailer => undef
};
bless $self, $class;
return $self;
}
### メール送信
sub sendmail {
my $self = shift;
my %args = @_;
$self->{send_to} = $args{'send_to'};
$self->{send_from} = $args{'send_from'};
$self->{subject} = $args{'subject'};
$self->{name} = $args{'name'};
$self->{message} = $args{'message'};
$self->{files} = $args{'files'};
$self->{x_mailer} = $args{'x_mailer'};
if (!$self->{send_to}) {
$self->{send_to} = 'example@example.com';
}
if (!$self->{send_from}) {
$self->{send_from} = 'example@example.com';
}
if (!$self->{subject}) {
$self->{subject} = 'No Subject';
}
if (!$self->{message}) {
$self->{message} = 'No Message';
}
if (!$self->{x_mailer}) {
$self->{x_mailer} = 'Web Liberty';
}
foreach ($self->{subject}, $self->{name}, $self->{message}) {
$_ =~ s/<br ?/>/?n/g;
$_ =~ s/&/&/g;
$_ =~ s/</</g;
$_ =~ s/>/>/g;
$_ =~ s/"/"/g;
}
if ($self->{name}) {
$self->{send_from} = "?"" . $self->_encode($self->{name}) . "?" <$self->{send_from}>";
}
$self->{message} =~ s/?xEF?xBD?x9E/?xE3?x80?x9C/g;
$self->{message} = Jcode->new($self->{message}, 'utf8')->jis;
my @files = split(/?n/, $args{'files'});
my $boundary;
if ($files[0]) {
require webliberty::File;
$boundary = time;
while ($self->{message} =~ /$boundary/) {
$boundary++;
}
}
open(webliberty_Sendmail, "| $self->{sendmail} -t") or return(0, "Sendmail Error : $self->{sendmail}");
print webliberty_Sendmail "X-Mailer: $self->{x_mailer}?n";
print webliberty_Sendmail "To: $self->{send_to}?n";
print webliberty_Sendmail "From: $self->{send_from}?n";
print webliberty_Sendmail "Subject: " . $self->_encode($self->{subject}) . "?n";
if ($files[0]) {
print webliberty_Sendmail "Content-Type: multipart/mixed; boundary=?"$boundary?"?n?n";
print webliberty_Sendmail "--$boundary?n";
}
print webliberty_Sendmail "Content-Transfer-Encoding: 7bit?n";
print webliberty_Sendmail "Content-Type: text/plain; charset=iso-2022-jp?n?n";
print webliberty_Sendmail "$self->{message}?n";
foreach (@files) {
my $file_ins = new webliberty::File($_);
my $file_name = $file_ins->get_name . '.' . $file_ins->get_ext;
print webliberty_Sendmail "--$boundary?n";
print webliberty_Sendmail "Content-Type: application/octet-stream; name=?"$file_name?"?n";
print webliberty_Sendmail "Content-Transfer-Encoding: X-uuencode?n";
print webliberty_Sendmail "Content-Disposition: attachment; filename=?"$file_name?"?n?n";
if (open(webliberty_Sendmail_FILE, $_)) {
binmode(webliberty_Sendmail_FILE);
print webliberty_Sendmail $self->_uuencode(join('', <webliberty_Sendmail_FILE>), $file_name);
close(webliberty_Sendmail_FILE);
}
}
close(webliberty_Sendmail);
return 1;
}
No.1ベストアンサー
- 回答日時:
> $init->{sendmail_path} = '/usr/local/bin/sendmail -t -f ' メールアドレス' ';
これだとシングルクオートでくくられた文字列中にシングルクオートが入っていて、正しい文字列になってません。
> $init->{sendmail_path} = '/usr/local/bin/sendmail -t -f "メールアドレス" ';
としたらどうなりますか?
この回答への補足
ご回答ありがとうございます。
以前に"メールアドレス" ';で試したのですが
エラーとなりCGIが稼働しなくなってしまいます。
(サーバーマニュアルの記述でご質問させて頂きました。)
先ほどためしにもう一度変更してアップしてみたのですが
Internal Server Errorとなってしまします。
これはCGI初期設定部分での-fオプションや-tオプションを受け付けないということなのでしょうか。
先ほど補足させて頂きましたが、もう一度見直した結果。
色々設定を変更している間に他の設定部分が変更されていたみたいで
ご回答頂きました内容を再度チェックした結果
正常に作動致しました。
「うっかりしておりました」誠に申し訳ございません。
お騒がせいたしました。
とても助かりました。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Pythonで会員サイトの自動ログイン ID Nameがない 1 2022/12/16 02:09
- その他(プログラミング・Web制作) pythonをjupiter notebookからmecabで頻出の高い単語の抽出について(Runt 1 2022/12/17 18:08
- Ruby 教えてください 2 2023/01/04 17:50
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- Ruby パイソンのクラスについて 3 2023/06/20 07:30
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- その他(プログラミング・Web制作) Pythonを勉強しています。 5 2023/08/25 09:51
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlで書いたcgiでsqliteの使い...
-
ファイル名変更プログラム
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
select値をhiddenのvalueに渡し...
-
「value」に2つの値をセットす...
-
プログラミングについての質問...
-
EXCELとの連携
-
VB.net データーグリッドビュー...
-
ラジオボタンを選択済みにする...
-
横スクロールを縦スクロールに...
-
チェックボックスの返す値
-
チェックボックスで選択した内...
-
この画像の縦の棒と横の棒はど...
-
OPTIONタグにループは使えない...
-
Javascriptの変数をCGIに送る方法
-
クッキー書き込みが正常に行わ...
-
プルダウンメニューにテキスト...
-
チェックボックスの余白を指定...
-
FORMを中央に表示したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SUN BBSの改造方法
-
perlで書いたcgiでsqliteの使い...
-
tracert ができない原因
-
入力フォームに全角・半角スペ...
-
CGIメールフォームの件名について
-
Perlでuse socketを使用してフ...
-
電話番号を読み込むプログラム...
-
CGI(Perl)内での必須項目チェ...
-
Windows7でVBScriptによるネッ...
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
select値をhiddenのvalueに渡し...
-
「value」に2つの値をセットす...
-
チェックボックスの返す値
-
INPUT TYPE
-
WEBページを強制的に横画面で見...
-
[HTML]プルダウンメニューの横...
-
VB.net データーグリッドビュー...
-
別formのhidden項目を自form値...
-
FORMのselectの選択肢を最初か...
おすすめ情報