質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.48%

  • PHP

    24462questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

携帯に弾かれないメールの送信方法(PHP)

解決済

回答 5

投稿

  • 評価
  • クリップ 3
  • VIEW 2,266

anago

score 9

前提・実現したいこと

PHPにて作成中のシステムの1部にユーザーからの操作があった際にメール送信を行う機能を付けております。(通販の注文確認自動メールのようなもの)

PHPライブラリのPHPMailerでSMTP認証をさせて、メール送信機能を実装しており、送信自体はうまくいっているのですが、docomo等のスマートフォンで、PCからのメールを受け取らない設定をされている端末には、弾かれてしまいます。

ユーザーに設定解除してもらえば届くのですが、設定解除は手間ですし、その部分が理由で諦めてしまう人もいると想定されるので、出来ればシステムで対処したいと考えています。

上記の設定を抜けるには、メールが携帯端末から送られているという認識を持たせる必要があると思うのですが、やり方がわからず、困っております。

御存じの方いらっしゃいましたら、ご教授ください。

尚、メールの文字言語は多国籍後が入る可能性がある為、unicodeを使用しています。

発生している問題・エラーメッセージ

携帯端末で、PCからのメールを受け取らない設定をされている端末にメールが届かない

該当のソースコード

require("../../library/PHPMailer/class.phpmailer.php");

//言語設定、内部エンコーディングを指定する
mb_language("uni");
mb_internal_encoding("UTF-8");

//日本語メールを送る
    //宛先
    $to = "○○○○○";  

    //タイトル作成
    $subject = "○○○○○";

    //本文作成
    $body = "○○○○○";

    //送り主アドレス
    $from = "○○○○○"; 

    //送り主名
    $fromname = "○○○○○";

    $mail = new PHPMailer();           //PHPMailerのインスタンス生成
    $mail->CharSet = "UTF-8";       //文字コード設定
    $mail->Encoding = "8bit";          //エンコーディング

    //SMTPサーバー設定
    $mail->IsSMTP();                        
    $mail->SMTPAuth = TRUE; 
    $mail->Host = '○○○○○'; 
    $mail->Port = ○○○○○;
    $mail->Username = '○○○○○'; 
    $mail->Password = '○○○○○';

    //宛先(To)をセット
    $mail->AddAddress($to);      
    //差出人(From)をセット                                                         
    $mail->From = $from;        
    //差出人(From名)をセット                                                          
    $mail->FromName = mb_encode_mimeheader(mb_convert_encoding($fromname,"UTF-8","UTF-8")); 
    //件名(Subject)をセット
    $mail->Subject = mb_encode_mimeheader(mb_convert_encoding($subject,"UTF-8","UTF-8"));  
    //本文(Body)をセット 
    $mail->Body  = mb_convert_encoding($body,"UTF-8","UTF-8");                              

    //メールを送信
    if (!$mail->Send()){
    echo("Failed to send mail. Error:".$mail->ErrorInfo);
    }else{
    echo("Send mail OK.");
    }

試したこと

WEB検索→解答みつからず

補足情報(言語/FW/ツール等のバージョンなど)

PHP Version 5.6.3

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 5

+2

ユーザーに設定解除してもらえば届くのですが、設定解除は手間ですし、その部分が理由で諦めてしまう人もいると想定されるので、出来ればシステムで対処したいと考えています。 

それができるのであれば、多くのサイトで「携帯のメールを設定する場合は、ドメイン指定を解除してください。」と明記する必要はありませんよね。

つまり、技術的に不可能です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/06/15 20:29

    一般的なやり方では問題解決できそうにないですね、ありがとうございます。

    キャンセル

+2

前提条件として、メールサーバー、メールアプリケーションなどのレベルで受け取り拒否をしている場合は、ユーザーがそれを回避してもらわない限りメールが届くことはありません。
携帯会社のメアドの場合、基本的にドメイン指定で解除してもらうしか方法はないと思います。

それとは別に、迷惑メールととられないようなメールサーバー側の設定(例えば、送信ドメイン認証など)がいくつかありますので、そういったものがちゃんとされているかは調べたほうが良いでしょう。

メール配信やSMSを専門にやっている会社のAPIを使うという方法もあります。

ただ、どのような方法を用いても、メールの仕組み上100%相手に届くようにするというのは不可能です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/06/15 20:13

    レンタルサーバー上(kagoya)でのシステムですが、現状の対策としては以下のようなものです。
    ・プログラムをおいてあるサーバーと送信サーバーは同じkagoyaのものです
    ・システムのドメインと送信メールアドレスのドメインは同じです
    ・SMTP認証を行い送信しています。
    ・短時間に大量のメールが同ドメインに送信されるということはありません。

    キャンセル

checkベストアンサー

0

ブラウザを動かすプログラムをseleniumを使って組んで、PCのブラウザからキャリアメールが送受信できるサービスを使用してそこから送ればPCからのメールを受け取らない設定ではブロックされないんじゃないかと思います。実際に試したわけではなく予想ですが。

http://oss.infoscience.co.jp/seleniumhq/

http://enjoy.sso.biglobe.ne.jp/archives/carrier_mail/

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/06/15 20:27

    ユーザーのからの操作を検知
    →selenium機動
    →ブラウザからキャリアメールとして送る

    遠回りではありますが実現できそうです、
    他にもdocomoのアドレスから自動返信にしてみるとか色々試してみます。
    最終的に考えているものを実現できそうな提案をいただきましたoskbtさんにベストアンサーつけさせていただきます。

    キャンセル

0

そんなことが簡単にできるなら PC からのメールを受け取らないという設定自体が無意味になりませんか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/06/15 18:21

    確かに、その設定が無意味になると想定されますが、このような疑問を抱いた経緯としまして下記記載させて頂きます。

    私は楽天等のECサイトで出店店舗運営側として関わっているのですが、注文は携帯からでもPCからでも出来、注文後の自動返信メールは携帯端末にも届いており、問題の設定が原因で届かないといった場面に遭遇した事が無い事

    更にECサイトシステム内には、メール受取側がPC用メールである場合の返信テンプレートと、携帯用メールの返信テンプレートが分かれて用意されていること

    以上から、システムから送るメールに携帯として送っていると認識させることが出来るのではないかと考えました。

    キャンセル

  • 2016/06/15 18:35

    楽天は大手ですので、一般ユーザーと同じ立場ではありません。
    各電話会社と提携している可能性もありますよ。

    https://www.landerblue.co.jp/blog/?p=7514
    ここを見ると、i.softbank.jp からのメールは、PC 扱いであったのが携帯扱いに変わったとあります。
    つまり、どこまでを PC メールとするかは、各業者のさじ加減次第ということです。

    キャンセル

  • 2016/06/15 20:14

    たしかに出展しているECサイトは大手ばかりなので、提携している可能性がありそうです

    キャンセル

0

skype api を使ってSMSを送るといった方法を何処かで見た気がします。
参考になれば^^;

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/06/15 20:10

    希望はメールで自動返信したいのですが、SMSを送れるAPIがあるとは知りませんでした。
    情報いただきありがとうございます。

    キャンセル

同じタグがついた質問を見る

  • PHP

    24462questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。