PHPでメールを送信する仕組みを実装したいです。(Gmailの迷惑メールフォルダに入らないメールを希望です)
19:00現在
問題なくメールは送信できているようでした。しかし、Gmail宛へにメールを送信するとセキュリティが強くて受信をしてくれません。
Gmailなどの高セキュリティなメールソフトでも問題なく受信ができるメールを送信するにはどうしたらよいでしょうか?よろしくお願いいたします。
現在、HTMLとPHPを使ってWebフォームを開発中です。
受け取った値を
「【●●●】 ◯◯◯」
といった感じで表示させたメールを管理者およびお問い合わせ客に対して送リたいと考えています。以下のサイトを参考に仮にお問い合わせ客宛のコードを記述しました。
https://www.bricoleur.co.jp/blog/archives/3480
※$this…のコードは$headersに変更すると使えるというコメントを見つけたので、以降に記載するコードではそのように変更しています。PHP
1$mail_body = "【ここに】 メールの内容が入ります"; 2 3//これを指定しないとFromの表示名が化ける 4mb_internal_encoding("utf-8"); 5//宛先、Fromを設定 6// EmailはWebフォームのメールアドレスを記入する箇所のname 7$to = h($_POST['Email']); 8$fromname = mb_encode_mimeheader("◯◯株式会社"); 9$from = <メールアドレス>; 10//headerを設定 11$charset = "UTF-8"; 12$headers['MIME-Version'] = "1.0"; 13$headers['Content-Type'] = "text/plain; charset=".$charset; 14$headers['Content-Transfer-Encoding'] = "8bit"; 15$headers['From'] = '"' . $fromname . '"<' . $from . '>"'; 16 17// headerを編集 18foreach ($headers as $key => $val) { 19 $arrheader[] = $key . ': ' . $val; 20} 21$strHeader = implode("\n", $arrheader); 22//件名を設定(JISに変換したあと、base64エンコードをしてiso-2022-jpを指定する) 23$subject = "=?iso-2022-jp?B?".base64_encode(mb_convert_encoding("【◯◯株式会社】お問い合わせありがとうございます","JIS","UTF-8"))."?="; 24//本文を設定 25$send_mail_header = <<< HEADER 26 27この度はお問い合わせいただきましてありがとうございます。 28お送りいただいた内容を確認させていただき、後日弊社担当者よりご連絡いたします。 29 30以下に今回お送りいただいた内容を記載しておりますのでご確認ください。 31 32HEADER; 33 34$send_mail_footer = <<< FOOTER 35 36────────────────────── 37株式会社 38〒 39TEL: / FAX: 40URL: aaaaaaaaaaaaaaaaaa 41────────────────────── 42 43FOOTER; 44 45$send_mail_body = $send_mail_header . $mail_body . $send_mail_footer; 46 47// メールを送信する 48mail($to,$subject,$send_mail_body,$strHeader);
しかし、これではうまくメールを送ることが出来ませんでした。どうしたらよろしいでしょうか。
また、Gmail宛に送った際に迷惑メールフォルダに入らないようにしたいのですが、どのようにしたらよろしいでしょうか?ちなみに、HTMLから$_POSTで値を取得する、$mail_bodyへの書き写しはechoで表示させたところ問題なく表示されたので、今回の問題箇所ではないと判断し掲載しておりません。
以上、よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/09 01:44