OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

入力されたアドレスに@docomo.ne.jpを追加

  • すぐに回答を!
  • 質問No.212141
  • 閲覧数234
  • ありがとう数2
  • 気になる数0
  • 回答数7
  • コメント数0

お礼率 43% (19/44)

フォームを使って、入力されたアドレスにメールを送ろうと思っています。入力されたアドレスに@docomo.ne.jpを追加しようと思うのですが、うまくいきません。
どなたかご教授お願い致します。

ソースはこんな感じです。

$location = 'http://www.0000.co.jp/';
$docomo = '@docomo.ne.jp';

if (open(MAIL, "|$sendmail -f $form{'email'} $docomo -t")) {
$msg = "To: $form{'email'} $docomo\n";
$msg .= "From: $webmaster\n";
通報する
  • 回答数7
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.7
レベル11

ベストアンサー率 38% (114/297)

締め切られていないようなので、まだできていないとみなして再度。
現状は@docomo.ne.jpが付けられない、と言うことですが、@docomo.ne.jpをつける必要のない
$webmaster = '0000@0000.co.jp';
へはメールは飛ぶのでしょうか??
ただ@docomo.ne.jpが付けられない、というレベルであれば。

$mail = $form{'email'};
$mail .= '@docomo.ne.jp';
$msg = "To:$mail\n";
もしくは、
$msg = "To: $form{'email'}.$docomo\n";
としてみる、とか。
お礼コメント
izaq

お礼率 43% (19/44)

noopeeさん

いろいろとアドバイスをありがとうございました。
結局この方法では、勉強不足でどこが影響して作動しないかが
わからず、他のフォームメールを元にして作成することができました。

みなさんにいただいたアドバイスをもとに、
この方法でも送信できるように勉強してみます。ご返事おくれたことおわび致します。
投稿日時 - 2002-02-21 14:05:19
-PR-
-PR-

その他の回答 (全6件)

  • 回答No.2
レベル8

ベストアンサー率 68% (17/25)

もしかしたら $msg = "To: $form{'email'} $docomo\n"; を $msg = "To: $form{'email'}$docomo\n"; にする (半角スペースを入れない) とうまくいくかもしれません。 ...続きを読む
もしかしたら
$msg = "To: $form{'email'} $docomo\n";

$msg = "To: $form{'email'}$docomo\n";
にする (半角スペースを入れない) とうまくいくかもしれません。
補足コメント
izaq

お礼率 43% (19/44)

MtHillさんコメントありがとうございます。

その方法で試してみたのですが、
サーバーエラーは、でなくなりましたが、
メールが送信されないのです。。。
投稿日時 - 2002-02-05 17:23:38
  • 回答No.1
レベル11

ベストアンサー率 38% (114/297)

こんにちは。 うまくいきませんとのことですが、どのような結果になっているのでしょうか? $msg = "To: $form{'email'} $docomo\n"; このあと、$msgには何が入っていますか? ...続きを読む
こんにちは。

うまくいきませんとのことですが、どのような結果になっているのでしょうか?

$msg = "To: $form{'email'} $docomo\n";
このあと、$msgには何が入っていますか?
補足コメント
izaq

お礼率 43% (19/44)

noopeeさんこんにちは、
先ほどのものでは、説明不足でした。
申し訳ございません。

最近よくある、i-modeへのアドレスの転送をしようと思っております。
まず、フォームにメールアドレスの@以前の部分を入力していただき、
plに送り@docomo.ne.jpの部分を追加して、
フォームに記入されたメールアドレスへ、
i-modeサイトのURLをメールで送り、
locationで指定をしたページへ飛ばすことがしたいのです。

現状はフォームに入力したアドレスに、@docomo.ne.jpを追加することができません。。。

@docomo.ne.jpをフォームの中にhiddenとして、読ませようともしたのですが、
サーバーエラーがでてしまいます。

以下が全文です。
どこが問題なのでしょうか?
初心者なので、今一つわかりません。
よろしくお願い致します。

#!/usr/bin/perl

require 'jcode.pl';
$kanjicode = 'shift-jis';
$sendmail = '/usr/sbin/sendmail';
&init_form($kanjicode);
$webmaster = '0000@0000.co.jp';
$location = 'http://www.0000.co.jp/';
$docomo = '@docomo.ne.jp';

if (open(MAIL, "|$sendmail -f $form{'email'} $docomo -t")) {
$msg = "To: $form{'email'} $docomo\n";
$msg .= "From: $webmaster\n";
$msg .= 'Subject: '."\n";
$msg .= "
http://www.0000.co.jp/i/

※フォームの入力をされていないにもかかわらず、
このメールを受信された場合は、
どなたかが誤ってあなたのアドレスを
入力してしまった場合がありますので、
このメールを削除してください。\n\n";
&jcode'convert(*msg, 'jis');
print MAIL $msg;
close(MAIL);

print "Location: $location\n\n";
}

sub init_form {
local($query, @assocarray, $assoc, $property, $value, $charcode, $method);
$charcode = $_[0];
$method = $ENV{'REQUEST_METHOD'};
$method =~ tr/A-Z/a-z/;
if ($method eq 'post') {
read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
} else {
$query = $ENV{'QUERY_STRING'};
}

@assocarray = split(/&/, $query);
foreach $assoc (@assocarray) {
($property, $value) = split(/=/, $assoc);
$value =~ tr/+/ /;
$value =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack("C", hex($1))/eg;
&jcode'convert(*value, $charcode);
if ($form{$property}) {
$form{$property} .= ':' . $value;
} else {
$form{$property} = $value;
}
}
}
投稿日時 - 2002-02-05 15:27:58
  • 回答No.3
レベル10

ベストアンサー率 40% (85/208)

$docomo = '@docomo.ne.jp'; を $docomo = '\@docomo.ne.jp'; にしたら上手くいきませんか? ...続きを読む
$docomo = '@docomo.ne.jp';

$docomo = '\@docomo.ne.jp';
にしたら上手くいきませんか?
補足コメント
izaq

お礼率 43% (19/44)

alicia-yさんコメントありがとうございます。
早速試してみたところ、サーバエラーがでてしまい
うまくいきませんでした。。。
なにが原因なんでしょうね?
投稿日時 - 2002-02-06 11:27:44
  • 回答No.4
レベル8

ベストアンサー率 68% (17/25)

$docomo = '@docomo.ne.jp'; を $docomo = '\@docomo.ne.jp'; にすると、サーバーエラーになる可能性があります。 とほほのperl入門(概要編) http://tohoho.wakusei.ne.jp/wwwperl1.htm に、 「ダブルクォーテーションの中では変数やバックスラッシュ( ...続きを読む
$docomo = '@docomo.ne.jp';

$docomo = '\@docomo.ne.jp';
にすると、サーバーエラーになる可能性があります。

とほほのperl入門(概要編)
http://tohoho.wakusei.ne.jp/wwwperl1.htm
に、

「ダブルクォーテーションの中では変数やバックスラッシュ( \ )が
評価されますが、シングルクォーテーションの中では単なる文字として
認識されます。」

とある通り、上記の例だとメールヘッダーの「To:」フィールドの内容が
name\@docomo.ne.jp
になるかもしれないからです。


もし、
$docomo = '@your-isp.ne.jp';
(あなたのプロバイダードメイン) などでテストしても送信されない場合、
原因は DoCoMo にあると思います。
補足コメント
izaq

お礼率 43% (19/44)

コメントありがとうございます。

試してみたところ、サーバーエラーがでまして、
届いたメールにname\@docomo.ne.jp とついてしまいました。
投稿日時 - 2002-02-06 18:24:23
  • 回答No.5
レベル10

ベストアンサー率 40% (85/208)

先ほど誤って回答して申し訳ありません。 シングルクォートを見落としていました。 ここから確認ですが、 CGIからでなくて手動で sendmail を起動してメールを送信した場合は ちゃんと送られるのでしょうか。 sendmail -f xxxx@docomo.ne.jp -t < sendfile それと sendmail にいきなり送るのではなくていったんファイルに出力して ...続きを読む
先ほど誤って回答して申し訳ありません。
シングルクォートを見落としていました。

ここから確認ですが、
CGIからでなくて手動で sendmail を起動してメールを送信した場合は
ちゃんと送られるのでしょうか。

sendmail -f xxxx@docomo.ne.jp -t < sendfile

それと sendmail にいきなり送るのではなくていったんファイルに出力して
正しく送る内容が出来ているか確認したほうがいいでしょう。

if(open(MAIL, "|sendmail ....

if(open(MAIL, ">/tmp/filename"))

#sendmail が From をチェックしていて relay を拒否しているんじゃ無いだろうか?
#ログに何かメッセージが出てませんか?
#/var/log/maillog or /var/log/messages or /var/log/syslog
補足コメント
izaq

お礼率 43% (19/44)

コメントありがとうございます。
手動で sendmail を起動する方法がちょっとよくわからないのですが、
申し訳ないですが、具体的な方法を教えていただけないでしょうか?
投稿日時 - 2002-02-06 14:26:39
  • 回答No.6
レベル10

ベストアンサー率 40% (85/208)

>手動で sendmail を起動する方法がちょっとよくわからないのですが、 1. まず送信する内容のファイルを作る。 % vi sendfile sendfile の内容は -- ここから ---- To: 090xxxxxxxx@docomo.ne.jp From: 0000@0000.co.jp メッセージ メッセージ -- ここまで ---- という様 ...続きを読む
>手動で sendmail を起動する方法がちょっとよくわからないのですが、

1. まず送信する内容のファイルを作る。
% vi sendfile
sendfile の内容は
-- ここから ----
To: 090xxxxxxxx@docomo.ne.jp
From: 0000@0000.co.jp

メッセージ
メッセージ
-- ここまで ----
という様な内容のもの

2. sendmail で送信する。
# /usr/sbin/sendmail -f 0000@0000.co.jp -t < sendfile

これで送信出来るかテストする。

----------------------------------------------------------------
あ、今スクリプトの例を見ると
if(open(MAIL, "|$sendmail -f $form{'email'} $docomo -t")) {

if(open(MAIL, "|$sendmail -f $webmaster -t")) {
じゃないのかな。
補足コメント
izaq

お礼率 43% (19/44)

コメントありがとうございます。
さっそく試してみます。
投稿日時 - 2002-02-06 18:22:51
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ