お世話になります。
perlをつかってメールフォームを作っています。
メールフォームから受け取った情報を(受け取るまでは暗号化してます。)
S/MIMEで暗号化しメール送信したいと考えております。(linux sendmeil)
調べてみたところopensslを使いあらかじめ用意したテキストファイルを
S/MIMEで送る事ができました。
↓こんな感じです。---------------------------------------------------------------
$SMIME = 'openssl smime -sign -signer my-cesr.pem -inkey key.pem -in mail.txt -text |
openssl smime -encrypt -from masa@****.co.jp -to yosi@****.co.jp -subject "signtest"
-des3 my-cesr.pem | /usr/sbin/sendmail masa@****.co.jp';
open (MAIL, "| $SMIME");
close(MAIL);
--------------------------------------------------------------------------------
↑この方法ですとメールフォームから受け取った情報を一度ファイルに
保存(mail.txt)しなければならないので、実用的ではありません。
何とかファイルからではなく変数で送信したいのですがうまく行きません。
っというか方法がさっぱり分かりません。
どうぞ宜しくお願いします。m(__)m
No.3ベストアンサー
- 回答日時:
再々度。
悔しい(笑)ので自分のところで試してみたところ,私の環境(openssl 0.9.6c, Solaris 2.6, Perl 5)では,以下のようなPerlスクリプトが正常に動作しましたが...。
- Linux と Solaris (あまり重要な差ではない)
- CGIとシェルからの実行 (実行権に気を付けるくらい)
- メイルの送信にsendmailではなくmailx (Solaris についてくる sendmail の CUI のようなものなので本質は同じ)
くらいしか違いがないと思うのですが…。sonarさんのところのopensslのバージョンはどうなっているでしょうか?
#!/bin/somewhere/perl
$msg = 'This is my happiness.';
$openssl = 'openssl smime -sign -signer senderCert.pem -inkey senderPrivKey.pem -text | openssl smime -encrypt -des3 senderCert.pem | mailx -s "openssl test" ***@***.***';
system ("echo '$msg' | $openssl");
1;
この回答への補足
じっさいに試していただいたのですね。。。(^^;
ほんとにありがとうざいます。
動作したということなので自分も何とか頑張ります。
自分の環境は[openssl0.9.6b,redhat7.2,perl5]です。
なぜ駄目なのかちょっと調べてたのですが、どこかのメーリングで
「リダイレクトはOKだがパイプ渡しでは駄目。これはバグです。」のような事が書いてありました。
ちょっと面倒ですが今度はバージョンを上げて試してみます。
No.4
- 回答日時:
殆どダイアログ状態ですね。
> どこかのメーリングで
> 「リダイレクトはOKだがパイプ渡しでは駄目。これはバグです。」のような事が書いてありました
そのMLは私も見た気がします。また別MLではそれに対するパッチ(ソース)を投稿していた人もいたような。
自分の状況と矛盾するので,ちょっと気になってはいるんですが。
さらにトライしてみられるのであれば,
- まず Perl からではなくシェルから,
- サインだけとか,暗号だけとかにわけて,echo 'abc' | openssl smime ... を実行し,
問題がどこにあるのかを正確に切り分けられることをお勧めします。
いまだ上手くいきませんが、よくよく考えたら
セキュリティー的にはファイルからのほうが無難かなと
思い直しました。。。(^^;
ただ、パイプでできないのは悔しいので 今後もトライしてみます。
それでは、いろいろとありがとうございました。m(__)m
失礼します。。。
No.2
- 回答日時:
再びatonです。
すごい恥ずかしい間違いをしていました。
誤:open (MAIL, "cat $mail | $SMIME");
正:open (MAIL, "echo $mail | $SMIME");
open (MAIL, "echo '$mail' | $SMIME");
system ("echo $mail | $SMIME");
system ("echo '$mail' | $SMIME");
の4つのうちのどれか(systemを使う場合 close (MAIL); は不要です)。
これでもうまくいかなそうな気もしますが,とりあえず試すだけ試してみてください。
この回答への補足
echo については cat のアイデアをいただいた時に
試してみましたが駄目でした。。。 (systemでも)
ありがとうございます。
No.1
- 回答日時:
なぜ,「実用的ではない」のかが今一つ分からないのですが…。
$SMIME = 'openssl smime -sign -signer my-cesr.pem -inkey key.pem -text |
openssl smime -encrypt -from masa@****.co.jp -to yosi@****.co.jp -subject "signtest"
-des3 my-cesr.pem | /usr/sbin/sendmail masa@****.co.jp';
open (MAIL, "cat $mail | $SMIME");
close(MAIL);
註:$mail はメイル本文が入っている変数
とかじゃだめでしょうか?
(試してないので自信はありません)
この回答への補足
ご返答ありがとうございます。
試してみましたがうまくいきませんでした。。。
>なぜ,「実用的ではない」のかが今一つ分からないのですが…。
実用的ではない。。っというよりは単なるこだわりに近いかもです。。(^^;
なんというかスマートでない気がするんで。。。
もうひとふんばりして駄目だったら一度ファイルに落としてから
やる方法にいたします。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ラズベリーパイ初心者です。 ラ...
-
Perlのエラーについてご教授く...
-
perl 初等プログラミングについて
-
perlプログラミング 空白行削除
-
テキストファイルで提出とは?
-
perlで複数のファイルの処理に...
-
Wallpaper Engineでおすすめの...
-
プログラムを全くいじってない...
-
INDIRECT 横に再度抽出したい
-
Perl言語について。
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
sendmailで複数の宛先にメール...
-
Perlからメール送信で文字化け
-
フォームの日本語が文字化け
-
sendmailのFROMに日本語を使う
-
sendmailで複数アドレスに送信...
-
perl フォームメール送信の...
-
Perl メール 初心者
-
Perl SendMail Bcc メルマガ
-
Sendmailの文字化けについて
-
sendmailで本文が文字化けします
-
メールのタグ(<a href="mailto:...
-
auのiPhoneでの受信メールが文...
-
Perl からbashを呼び出したい
-
CGI メールフォームからBCCのア...
-
sendmailが上手く動かないのか...
-
Sendmailで送信。メアドが違う...
-
自動返信について
-
JSONで文字列が長い時
-
Application.ScreenUpdating = ...
-
formで特定のinputを送信しない...
おすすめ情報