質問: "お問い合わせありがとうございました。 hogehoge ――――――――――――――――――――――――――― お名前 " . $mail_contact_name . " 連絡先メールアドレス " . $mail_contact_mail . " お問い合せ項目 " . $mail_contact_type . " ――――――――――――――――――――――――――― 【お問い合せ内容】 " . $mail_msg . " " . $mail_shomei; ### 試したこと ・ドメインでDKIMを設定し、nslookupコマンドで設定を確認。 ・Linuxサーバ上でmailコマンドでメール送信し、着信したメール(Gmailを使用)のヘッダーを確認したところDKIM認証はPASS。 ### 補足情報(言語/FW/ツール等のバージョンなど) ・サーバ php-mbstring-5.6.15-1.el6.remi.x86_64 php-5.6.15-1.el6.remi.x86_64 postfix-2.6.6-6.el6_7.1.x86_64 opendkim-2.10.3-7.el6.x86_64 libopendkim-2.10.3-7.el6.x86_64 ・メールクライアント Gmail
回答: PHPのソースファイルでの改行コードがCRLF (`"\r\n"`) などになっているのだと思います。mb_send_mail()を使って送るメッセージでは、多くの場合、改行コードをLF (`"\n"`) にしないと正常なメッセージが送られません。 改行コードの違いで混乱しないよう、文字列の途中で改行する書き方はやめたほうがいいでしょう。改行するかわりに`\n`を書くようにしましょう。 ``` $mailtxt['contact_admin'] = "―――――――――――――――――――――――――――\n" . "お名前 " . $mail_contact_name . "\n" . "連絡先メールアドレス " . $mail_contact_mail . "\n" (中略) . "\n" . $mail_shomei; ``` また、フォームから入力されたものも、改行コードはCRLF、LF、CRとさまざまです。改行をすべてLFに置換してから使うようにしましょう。たとえば ``` $mail_msg = isset($_POST['msg']) ? $_POST['msg'] : ''; $mail_msg = str_replace(array("\r\n", "\r"), "\n", $mail_msg); ```