• ベストアンサー

PHPで作ったメールフォームから送信→迷惑メール扱いに

mb_send_mailでPHPメール送信するとたいがい迷惑メール扱いにされて困っています。 ソフトごとのフィルタ設定にもよるのかもしれませんが、こういうもんなのでしょうか。 よく"迷惑メール扱いになっている可能性があるのでxxx@xxx.jp"からのメールを受信可能にしてください"などという注記を見ますが、それも不憫に思います。 このあたり皆さんどうなさっていますか。 よろしくお願いします。

  • tkmkok
  • お礼率87% (128/146)
  • PHP
  • 回答数3
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

メールが迷惑メール扱いになるということは相手側はメールを見てこれは迷惑メールであると判断しているということです。ですから届いているメールを調べれば原因がわかるかもしれません。 自分宛にPHPからメールを送信してみてそのヘッダを調べてみて下さい。 まず注目するべきは「Return-Path: 」です。こちらのアドレスのサーバーがDNSに登録さていないとたいてい一発で迷惑メールに認定されます。ただし、こちらを修正するにはPHPを動かしている機器のSMTPサーバーの設定を変更しないといけません。

tkmkok
質問者

お礼

ありがとうございます。 メールヘッダですがさくらインターネットのサーバにメールフォームを置いているので下記のようになっていました。 Return-Path: <xxxx@wwwxxxx.sakura.ne.jp> SMTPサーバーの設定ですか。 レンタルサーバでもいじれるのでしょうか。。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

PHPからのメール送信は自分をメールサーバーとした送信だから きちんとメールサーバーの機能を設定していないと スパムとして認識されるのはしかたないでしょう。 PEARのMailを使うなどして、普段使うメールサーバーを指定して おくれば解決すると思いますよ

tkmkok
質問者

お礼

SMTPサーバー設定という奴でしょうか。 レンタルサーバでもできるんでしょうか。 すいません無知で。。

  • junkUser
  • ベストアンサー率56% (218/384)
回答No.1

mb_send_mailを使用していますが、同様事象に遭遇したことがあります。 推測ですが、ドメインの正引きと逆引きの結果が異なるか、迷惑メール業者御用達のホスティングサービスを使っているのではないでしょうか。 前者であれば、リレーホストを契約プロバイダーのメールサーバーへ向けることで回避できるかもしれません。(メールサーバーの設定変更が必要です) 後者は業者を変える以外対処不能です。

tkmkok
質問者

お礼

>ドメインの正引きと逆引きの結果が異なるか、 ご指摘の内容をちゃんと理解できていませんが、サーバはレンタルのさくらインターネットです。 スタンダードプランにて独自ドメイン設定しており、そのドメインに対してinfo@ドメイン.tvという形で管理者メールアドレスを発行しました。 (ドメインは別会社で取得) メールフォームの内容は、ユーザーにメルアドを入力してもらう欄があり、 送信完了後、控えを送信します。現在はテスト中なので、 // (1)管理者へ通知 mb_send_mail("チェック用自分のメルアド", $subject, $body, $headers); // (2)送信者へ控え通知 mb_send_mail("入力してもらったメルアド", $subject, $body, $headers); という感じです。 (1)は迷惑フォルダに入り、(2)は何故か正常に受け取れます。 メルアドは両方自分のプライベートのものなどで検証しています。

関連するQ&A

  • phpを使ってpostfixから送信したメールが迷惑メール扱いになってしまいます。

    サーバーOSはinuxのfedora core 6、メールサーバはpostfixを使っています。phpのmb_send_mail関数でメールの送信自体はできるのですが、自宅のPC(windowsvista,メーラーはwindowsメール)から受信した際に迷惑メールフォルダに振り分けられてしまいます。メール送信のphpファイルには「宛先、題名、本文」を変数に格納してmb_send_mail関数で実行するだけです。この他にphp上で追加の記述が何か必要なのでしょうか?見当もつかない状態ですので誰かお分かりになる方がおりましたら教えてください。あとサーバーのほうはホスティングなので外部にあり、リモート操作です。

    • ベストアンサー
    • PHP
  • PHPでメール送信を行う場合、SSLで送信できないものでしょうか?

    PHPでいわゆる問い合わせフォームをつくっています。 SSLの設定していますので、次のような感じです。 https://www.xxx.com/1.php https://www.xxx.com/2.php(内容確認) https://www.xxx.com/3.php(送信完了) 最後の送信完了部分で 管理者宛にメールを送信を行っています。 mb_send_mailを使っています。 この時、このメールはおそらく暗号化されてものではなく 平文でとんでいるんだと思います…。 これをPHPを使ってSSLで送信する方法ってないものでしょうか…。 もしあれば、ぜひソースでお教えいただけないでしょうか…… よろしくお願いします。 ※環境としてはPHP5.2.5 xreaのレンタルサーバーを利用しております…。

    • 締切済み
    • PHP
  • メール送信フォーム

    mb_send_mail($to, $subject, $message, $from); でフォームのメール送信を作ったのですが、(エラーはでません)メールが送信されません。PHPのバージョンは4.23 HTMLでは <FORM METHOD="POST" ACTION="send.php" ENCTYPE="text/plain"> <input type="hidden" name="subject" value="質問"> </FORM> 省略 send.phpでは <?php mb_language("ja"); mb_send_mail($mail, $subject, $message, $from); ?> どこがおかしいのかわかりません? なにかヒントをいただけますか?

    • 締切済み
    • PHP
  • 迷惑メール扱いにされずにメールを送信したい

    今回初めてOKWave様に投稿させて頂きます、宜しくお願いします。 自分で送信したメールが受信者側にて迷惑メール扱いにされることが多く困っています。 私の事情としまして、 ・私はヤフーショッピングで店舗を運営しています。 ・毎日お買い物をしてくれたお客さんに対してお取引に必要なメールを送信しています。 ・SPEEVERというサーバーで「.jp」ドメインを取得しメールアカウントとして利用しています。 ・メーラーソフトはOEとBecky2を使用しています。 ・SMTPポートは587番です。(25番は使用出来ないみたいです) ------------- 私自身、迷惑メール扱いになってしまう原因のアルゴリズムがわからずにどの様に対策をしたら良いか困っているのですが、 OEで送信したメールは正常に受信されるがBecky2で送信すると迷惑メール扱いになる場合があり、さらにヤフーシステムを利用したメール(※1)で送信すると正常に届きます。 ※1 ヤフーショッピング運営者用にWEB上にシステムが構築されており、その中にお客様へメールを送信出来る機能があります。 しかし、送信に使用するメールアドレスを登録するだけでSMTPサーバーの情報は一切必要としていません。 (これってなりすましメール扱いにされませんか…?) YahooメールやHotmailだけを対象とするならば自身のアカウントで「迷惑メールでない」と報告すれば良いだけなのですが、一般プロバイダーや海外のお取引会社とも連絡をしていますので、今の状態を出来るだけ軽減させたく思います。 利用SMTPサーバーの方で何らかの証明書などを発行し、迷惑メールでないことを各社受信側のサーバーに伝えられれば良いのですが…。 ご質問の内容としまして、 ・何故OEでは届くのにBecky2では迷惑メール扱いになってしまうのか? (両ソフトともに設定は同じです) ・WEB上のヤフーシステムではSMTP情報を入力していないにも関わらず、何故迷惑メール扱いにならずに送信元を当社の.jpドメインで送信出来るのか? ・そして、Becky2を利用してなるべく迷惑メール扱いにされずにメールを送る方法 の3つとなります。 どのような些細な内容でも幸いですので宜しくお願いします。

  • PHPでメールを送信するには

    PHP超初心者です。 参考本をもとにPHPでメールを送信するということにチャレンジしているのですが、次のような文章が出ます。 Warning: mb_send_mail() [function.mb-send-mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\Program Files\Apache Group\Apache2\htdocs\php10\mail.php on line 11 エラー:送信に失敗しました 参考本に書いてあるとおり、 php.iniのSMTP=localhost を自分が使っているoooooo@ocn.ne.jpに書き換え、sendmailには自分の別アドレスを記述したのですが。 11行目のエラーも何を指しているのかわかりません。 ご回答よろしくお願いします。 【mail.php】 <html> <head><title>mail.php</title></head> <body> <?php $address=$_POST['address']; $subject=$_POST['subject']; $message=$_POST['message']; $header="Content-Type:text/plain;charset=iso-2022-jp"; mb_language("Japanese"); if(mb_send_mail($address, $subject, mb_convert_encoding($message,"JIS","EUC-JP"),$header)){ print("送信完了しました。"); }else{ print("エラー:送信に失敗しました"); } ?> </body> </html> 【mail_form.html】 <html> <head><title>メールの送信</title></head> <body> <h2>メールの送信</h2> <form action="mail.php" method="post"> 宛先:<input type="text" name="address"><br /> 件名:<input type="text" name="subject"><br /> 本文:<br /><textarea name="message" rows="5" cols="30"></textarea><br /> <input type="submit" value="送信"> </form> </body> </html>

    • ベストアンサー
    • PHP
  • phpからメールを送信したいです。

    phpからメールを送信したいです。 やりたい事はそれだけですが、根本的によく分かっていないところがあり、その辺りを整理したいと思っています。 何分、概念をよく理解していないので、意味不明な事を書くかもしれませんが宜しくお願い致します。 CentOS7にアパッチとPHPをインストールしました。 WEBルート上に下記のtest_phpinfo.phpを配置し、 ブラウザから http://IPアドレス/test_phpinfo.php で呼び出すと、 phpinfoの情報が画面上に出ています。 次に、 WEBルート上に下記のtest_mb_send_mail.phpを配置し、 ブラウザから http://IPアドレス/test_mb_send_mail.php で呼び出すと、 (画面に出すものは何も書いていないので)真っ白な画面が出て、自分のアドレスにメールが届いて欲しいのですが届きません。 あと、具体的に何が必要なのかという事が分かりたいのですが、それとは別に幾つか質問があります。 phpのmb_send_mail関数自体にはメーラの機能はあるのですか?ないのですか? phpのエンジンと追加モジュールでメーラの機能があり、その設定が必要なのか? phpのmb_send_mail関数自体にはメーラの機能はなく、postfixなどのメールサーバーを仲介するだけなのか? メール送信に必要なのは何ですか? 普通にPCからメールを送る場合は、 サンダーバードとかOutlookといったメーラと、自分のメールアドレスが必要です。 自分のメールアドレスの情報として メールアドレス、パスワード、 IMAPかPOPサーバー名、ポート番号 接続の保護、認証方式 SMTPサーバー名、ポート番号 接続の保護、認証方式 が必要です。 phpのmb_send_mail関数からメールを送信する場合も同様にこれらが必要ですか? このサーバーでメールを管理したいわけではなく、ただメールを送りたいだけです。 それでもメーラのようなモノではなく、メールサーバーが必要ですか? 以上、宜しくお願い致します。 [test_phpinfo.php] <?php phpinfo(); ?> [test_phpinfo.php] [test_mb_send_mail.php] <?php mb_language("Japanese"); mb_internal_encoding("UTF-8"); mb_send_mail("自分のアドレス", "件名", "本文", "From: from@example.com") ?> [test_mb_send_mail.php]

    • ベストアンサー
    • PHP
  • PHPメールフォームでの文字化け

    プログラミング&PHP超初心者です。 PHPでメールフォームを作成して、送信には成功しましたが、受信したメールが文字化けしています。 いろいろ調べたのですが、解決できませんでした。 どなたか詳しいかた、教えていただけると嬉しいです。 送信する部分: if ($name != \"\" and $from != \"\" and $title != \"\" and $naiyou != \"\" ) { if (mb_send_mail($to, $title, $naiyou, \"From:$from\")) { echo \"メールを送信しました\"; } else { echo \"メール送信失敗です\"; } 文字コードはEUC-JPです。 サーバーはロリポップです。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • PHPでメールの送信ができない

    xampp1.8.0環境から PHPのmb_send_mailでメールの送信をしようとしています。 php.ini SMTP = smtp.xxx.ne.jp (プロバイダから指定されてるもの) smtp_port = 25 xampp1.7.7くらいの環境のときは↑の設定のみで送信できたのですが 新しいバージョンに変えてから送れなくなりました。 古いバージョンのphp.iniと差し替えると送信可能になります。 上記の2行以外でメールの設定に関わる部分はありますでしょうか?

    • 締切済み
    • PHP
  • phpでメール送信

    phpでメールを送信しようとすると、 Warning: mb_send_mail() [function.mb-send-mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() というエラーが出てしまいます・・・。 何が原因なんでしょうか?Localhostの原因でしょうか?

    • 締切済み
    • PHP
  • PHP、PEARでのメール送信での送信確認

    メール送信フォームを書籍やサイトを参考に作成しています。 下記のスクリプトで送信に成功したのですが、このままでは 「送信に成功しました」とも「送信に失敗しました」とも表示されません。 どのようにしたら、そのようなメッセージが出せるのでしょうか? <?php require_once("Mail.php"); $params = array( "host" => "xxx.xxx.xx", "port" => 25, "auth" => false, "username" => "xxx@xxx.xxx.xx", "password" => "xxxxxxxxxx" ); $mailObject = Mail::factory("smtp", $params); $recipients = "xxx@xxx.xxx.xx"; $headers = array( "To" => "xxx@xxx.xxx.xx", "From" => "xxx@xxx.xxx.xx", "Subject" => "Test Mail" ); $body = "This is test mail"; $mailObject -> send($recipients, $headers, $body); ?> よろしくお願いします。

    • ベストアンサー
    • PHP