
お問い合わせフォームから送信された通知メールが迷惑メールフォルダに振り分けられる主な原因は、メールのFromアドレスが、フォームに入力した応募者のメールアドレス(@gmail.comなど)に設定されていることです。
これは「なりすまし」と判断されるため、特にGmailのような厳格なメールサービスでは迷惑メールとして扱われます。サーバー(xserver.jp)自体は正しくメールを送信していますが、送信元アドレス(@gmail.com)と実際の送信サーバー(xserver.jp)が一致しないため、DMARC=failという結果になっています。
解決策としては、Fromアドレスをフォームの設置ドメイン(@tontonhouse.com)に固定する必要があります。
問題解決のために必要な修正は、以下の2つのファイルと箇所です。
メール設定を記述しているWikiページに、通知メールのFromアドレスを正しく指定します。これまでのやり取りでこの部分は修正済みかもしれませんが、念のため再度確認してください。
#notice_mail
[::To::[email protected]](<mailto:::To::[email protected]>)
::Subject::お問い合わせありがとうございます
::From::株式会社トントンパン,[email protected]
''

このプラグインは、フォーム設定で::From::を指定しても、デフォルトで応募者のメールアドレスをFromに設定してしまうため、PHPコードを直接修正する必要があります。
plugin_qform_parse()関数は、Wikiページのフォーム設定を解析する部分です。この関数内のcase 'notice_mail' :ブロックは、もともと::From::の設定を読み込むコードが欠落していました。このため、フォームページで::From::を設定しても無視されていました。
これから示す修正は、::From::の設定を正しく読み込んで、変数に格納するためのコードの追加です。
// 返信メール
case 'notice_mail' :
$body = '';
$subject = null;
$from = null;
$to = null;
for ($index++ ; $index<$end; $index++)
{
$l = $lines[$index];
if (trim($l)=="''") break;
if (preg_match('/^::Subject::(.*)$/', $l, $ms))
{
$subject = $ms[1];
}
else if (preg_match('/^::To::(.*?)$/', $l, $ms))
{
$to = array('name'=>'', 'email'=>$ms[1]);
}
else
{
$body .= $l."\\n";
}
}
$ret['conf']['notice_mail'] = array(
'subject' => $subject,
'from' => $from,
'to' => $to,
'body' => $body
);
break;
// 返信メール
case 'notice_mail' :
$body = '';
$subject = null;
$from = null;
$to = null;
for ($index++ ; $index<$end; $index++)
{
$l = $lines[$index];
if (trim($l)=="''") break;
if (preg_match('/^::From::(.*?),(.*)$/', $l, $ms))
{
$from = array('name' => $ms[1], 'email' => $ms[2]);
}
else if (preg_match('/^::Subject::(.*)$/', $l, $ms))
{
$subject = $ms[1];
}
else if (preg_match('/^::To::(.*?)$/', $l, $ms))
{
$to = array('name'=>'', 'email'=>$ms[1]);
}
else
{
$body .= $l."\\n";
}
}
$ret['conf']['notice_mail'] = array(
'subject' => $subject,
'from' => $from,
'to' => $to,
'body' => $body
);
break;