始めまして。
taki2といいます。
Perlのメール送信で使用するFromアドレスで分からない
事がありますので、アドバイスをよろしくお願いします。
-内容-
Fromをtaki@xxx.comと設定してメールを送信した場合、実際届くメールのFromには
taki@xxx.com
と、表示されます。
しかし、Fromを"taki@xxx.com"と設定した場合
実際届くメールのFromは
"taki@xxx.com"@xxx.com
と、表示されます。
""をつけるとどうやら""の中がアカウントと認識されるみたいです。
これを""があっても@xxx.comを設定せずにしたいのですが、どうすればよいのでしょうか?
ちなみにメール送信しているプログラムは以下の通りです。
sub MailSend {
my $head= $_[0];
my $body= $_[1];
my $flgMime= $_[2];#エンコード判定フラグ
my $in_return = 0;
my $rc;
#メールコマンド
my $cmdMail= "/usr/lib/sendmail -t";
#文字コード変換
##件名
&Jcode::convert( $$head{ "SUBJECT" }, "jis" );
##本文
foreach( @{$body} ){ &Jcode::convert( $_, "jis" ) };
#ヘッダのMIMEエンコード
if( $flgMime ){
$$head{ "SUBJECT" } = MIME::mimeencode($$head{ "SUBJECT" });
}
#メール送信
$rc = open( OUTMAIL, "| $cmdMail" ) ;
if($rc) {
print OUTMAIL "From: $$head{ "FROM" }\n";
print OUTMAIL "To: $$head{ "TO" }\n";
print OUTMAIL "Cc: $$head{ "CC" }\n";
print OUTMAIL "Bcc: $$head{ "BCC" }\n";
print OUTMAIL "Subject: $$head{ "SUBJECT" }\n";
print OUTMAIL "\n";
foreach( @{$body} ){ print OUTMAIL $_."\n" };
print OUTMAIL ".\n";
close( OUTMAIL );
}
else{
$in_return = 1;
}
return $in_return;
}
No.3ベストアンサー
- 回答日時:
お使いのsendmail.cfがドメイン部なしのメールアドレスfooをローカルドメイン付きfoo@xxx.comに書き換える設定になっているのだと思います。
sendmail.cfを修正してもいいですが、そもそもユーザがFromに何を入れるか予想できないのでPerlスクリプト側で入力チェックをするか、ある程度の加工をする必要があると思います。例えば、ダブルクォートを取り除くなら
$from =~ s/"//g;
です。
「RFC上正当なメールアドレス」かどうかを検査するには
RFC2822を見て、メールアドレスとして許されるパターンと照合すればいいでしょう。
参考URL:http://www.puni.net/~mimori/rfc/rfc2822.txt
No.2
- 回答日時:
#1 です。
<"taki@xxx.com">
ではありません。
<taki@xxx.com>
です。
ダブルクォーテーションは、メールアドレスではなく、名前を囲む時に利用する規則になっています。
そのため、誤動作しているのだと思います。
今、仮に、メールアドレスが $$head{"FROM"} に、名前が $$head{"FROMNAME"} に入っているとすると、
$fromstr = "";
$fromstr = "\"$$head{ "FROMNAME" }\" " if ($$head{ "FROMNAME" });
$fromstr .= "<$$head{ "FROM" }>";
print OUTMAIL "From: $fromstr\n";
例えば、この様な感じで動作すると思います。試してみて下さい。
No.1
- 回答日時:
メールアドレスを指定するフォーマットが間違っていると思います。
メールアドレスを囲む必要がある場合には、
<taki@xxx.com>
と指定します。名前を付ける場合には、
first last <taki@xxx.com>
または、
"first last" <taki@xxx.com>
とします。または、
taki@xxx.com (first last)
でも良かった様な。。。ウル覚えであまり自信がありません。
メールアドレス部分を、この様なフォーマットとしてみて下さい。
アドバイスありがとうございます。
早速行ってみましたが、うまく動作しませんでした。
以下に補足を記述します。
FROMアドレスはユーザが自由に設定できます。
ユーザがFROMに"taki@xxx.com"と設定した場合、
システムでは、設定したアドレスをFromに設定してメール送信します。
Dpopさんから教わったように<"taki@xxx.com">と設定して
メール送信しましたが、届いたメールは<"taki@xxx.com">@xxx.comと表示されました。
何か別な手段はありませんでしょうか?
それとももともとFromアドレスに「"」を入れてはいけないのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- 英語 英語ができる方に質問です。 以下の文がネイティブの方に伝わるかどうかを確認していただけないでしょうか 7 2022/12/16 14:54
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- その他(プログラミング・Web制作) pythonにおける単方向リストの実装について 4 2022/07/13 12:34
- その他(プログラミング・Web制作) pythonでDBのカラム名で取得したオブジェクトの値を表示したい 1 2022/05/13 03:41
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Perlからメール送信で文字化け
-
Application.ScreenUpdating = ...
-
python3について。
-
JSONで文字列が長い時
-
formで特定のinputを送信しない...
-
16進の10進変換について
-
FindFirst を複数条件で検索
-
<SELECT>タグの折り返し
-
セレクトボックスのselected属...
-
文字の横にプルダウンを表示さ...
-
メモリをアドレスを直接指定し...
-
VBA他のブックから値のみ貼付す...
-
実行時エラー 3020の対策
-
子windowsからsubmit()後にclos...
-
【至急!!!】python言語で本を見...
-
回数を指定しないで空白行まで...
-
ACCESS テキストボックスを隙...
-
テーブル内でドロップダウンメ...
-
VB6で、長い時間かかる処理...
-
複数のIP取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
sendmailで複数の宛先にメール...
-
フォームの日本語が文字化け
-
Perlからメール送信で文字化け
-
Sendmailで送信。メアドが違う...
-
CGI メールフォームからBCCのア...
-
perl フォームメール送信の...
-
Perl からbashを呼び出したい
-
sendmailで複数アドレスに送信...
-
perl で mailto: リンク
-
auのiPhoneでの受信メールが文...
-
sendmailが上手く動かないのか...
-
メールフォームの訪問者情報取...
-
自動返信について
-
crontabで
-
sendmailのFROMに日本語を使う
-
cgi.pmで作成されたsendmailプ...
-
メールのタグ(<a href="mailto:...
-
sendmailについて
-
netsend で振り分け
-
メールフォームCGIの文字化け。...
おすすめ情報