こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

回答受付中の質問

header("Location: mailto:

header("Location: mailto:
でメーラを開く時、本文を改行させたらエラーになるのですが、回避する方法はありませんか?



<?php
// 送信ボタンが押されたら
if (isset($_POST["submit"])) {
$wk_adrs= "web@test.sakura.ne.jp";
$wk_subject= "サブジェクト";


// これはOK
$wk_body= "ボディー";

// これはNG
$wk_body= "1行目ボディー".PHP_EOL."2行目ボディー";

// これもG
$wk_body = <<< EOM
1行目ボディー
2行目ボディー
EOM;

// 画面遷移させる
$wk_Location="Location: mailto:".$wk_adrs."?subject=".$wk_subject."&body=".$wk_body;
header($wk_Location);

exit;
}
?>


下記のメッセージが出る
Warning: Header may not contain more than a single header, new line detected in

投稿日時 - 2017-12-07 17:19:36

QNo.9405354

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

// 画面遷移させる
$wk_body = urlencode( $wk_body );
$wk_Location="Location:....

~みたいにしたら通るかも?

P.S.
今の時代、"mailto:" は使わない方が良いと思います。そもそも "mailto:" で起動させるべきメールソフトがもう時代遅れと言うか、使ってる人はかなりの少数派になってしまったので意味をなさない場合はほとんどかと(何も起きないかエラーメッセージが出るだけ)。

どうしてもphp経由でメール送信したのであれば、きちんとメールサーバを立ち上げて mb_send_mail() を使うべきです。

投稿日時 - 2017-12-08 12:06:19

ANo.1

テストもなーにもしてないから正解かわかりませんが、

http://www.kanaya440.com/contents/tips/html/003.html
http://www.tagindex.com/html_tag/link/a_mailto_sub.html

%0d%0a … 改行を入れます

って書いてるからこれじゃ?

投稿日時 - 2017-12-08 10:51:04

お礼

ありがとうございます。

投稿日時 - 2017-12-12 12:54:36