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

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

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

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

Q&A

解決済

5回答

7067閲覧

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

anago

総合スコア15

PHP

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

0グッド

3クリップ

投稿2016/06/15 09:05

###前提・実現したいこと
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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

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

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

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

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

投稿2016/06/15 09:32

CodeLab

総合スコア1939

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

anago

2016/06/15 11:13

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

0

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

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

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

投稿2016/06/15 09:13

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

anago

2016/06/15 11:29

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

0

ベストアンサー

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

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

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

投稿2016/06/15 10:36

oskbt

総合スコア1895

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

anago

2016/06/15 11:27

ユーザーのからの操作を検知 →selenium機動 →ブラウザからキャリアメールとして送る 遠回りではありますが実現できそうです、 他にもdocomoのアドレスから自動返信にしてみるとか色々試してみます。 最終的に考えているものを実現できそうな提案をいただきましたoskbtさんにベストアンサーつけさせていただきます。
guest

0

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

投稿2016/06/15 09:33

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

anago

2016/06/15 11:10

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

0

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

投稿2016/06/15 09:12

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

anago

2016/06/15 09:21

確かに、その設定が無意味になると想定されますが、このような疑問を抱いた経緯としまして下記記載させて頂きます。 私は楽天等のECサイトで出店店舗運営側として関わっているのですが、注文は携帯からでもPCからでも出来、注文後の自動返信メールは携帯端末にも届いており、問題の設定が原因で届かないといった場面に遭遇した事が無い事 更にECサイトシステム内には、メール受取側がPC用メールである場合の返信テンプレートと、携帯用メールの返信テンプレートが分かれて用意されていること 以上から、システムから送るメールに携帯として送っていると認識させることが出来るのではないかと考えました。
Zuishin

2016/06/15 09:35

楽天は大手ですので、一般ユーザーと同じ立場ではありません。 各電話会社と提携している可能性もありますよ。 https://www.landerblue.co.jp/blog/?p=7514 ここを見ると、i.softbank.jp からのメールは、PC 扱いであったのが携帯扱いに変わったとあります。 つまり、どこまでを PC メールとするかは、各業者のさじ加減次第ということです。
anago

2016/06/15 11:14

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問