質問 > フロント機能 > 商品購入完了時にメール配信されない(v2.0.1) |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
tao |
投稿日時: 2008/1/18 19:35
対応状況: −−−
|
一人前 登録日: 2007/12/28 居住地: 東京 投稿: 82 |
Re: 商品購入完了時にメール配信されない(v2.0.1) 引用:
perlであれば別のスクリプト言語です。 HTMLとXMLはデータ構造の仕様が違っていますが。元は一緒です。(書き方のルールが違う) 引用: ただし、PHPの関数はゆうに1000件以上あるようで、とても私の頭じゃ覚えられません。 私も全てはとても覚えられませんし覚えていません。標準関数でやってしまう事が多いです。(いろんなライブラリを使いこなせれば早そうなのですが、なかなか覚えられません) |
orign |
投稿日時: 2008/1/18 21:11
対応状況: −−−
|
常連 登録日: 2007/12/20 居住地: 投稿: 46 |
Re: 商品購入完了時にメール配信されない(v2.0.1) nanase様
解説ありがとうございました。 やはりsend(mail)にしているのは理由があったのですね。 ただ、残念ながら当方環境ではNGの結果で改造が必要でした。 まだまだ勉強不充分ですが、どうもメールトラブルはパソコンアプリの世界では永く議論されている事のようです。 原因はどうも「ユーザー個々の環境(PHPバージョン等)に影響されるから」のように感じました。 となれば、EC-CUBEでは当面の対策(次善の策)としては「3パターン程度のメール送信処理を用意し、ユーザーが切り替えられる」様にするしかないのではないか?と思えます。 それは簡単なことですし、かなり有効なのではないかと思えるのです。 いかがでしょうか? tao様 いやぁ、パソコンアプリの世界、こりゃ大変です。(^^) マニュアル本をどれだけ買い込まなきゃならないのか、気が遠くなりそうです。 それでなくても書棚にはアセンブラやらハードウエア(CPU)等の本がギッチリ詰まっているのに。 ramrun様 まず私が書いた「パラメータ誤り」のくだりは取り消します。 send(mail)の使い方はPHPバージョンによってかなり異なるようで、それが影響しているようです。 私の環境ではphp4.4.7、PostgreSQL 7.4.16、SMTP仕様に関しては勉強不足で説明不能(^^)なのですが、この環境では駄目だった・・・というのが正しい説明になるようです。 ヘッダ部分にbccを格納してあり、本来はそれでbcc宛メールも送信されなきゃいけないようです。 (そのため、第一パラメータ「宛先」では単にtoのみ明示している。) で、私の環境では駄目だったので、第一パラメータの構造を変更し、toだけでなくbccも「宛先」として明示するようにしたのです。 その結果、上手く動作するようになりました。 私と同様の問題をお抱えなら一度お試し頂き、結果をPHPバージョン等の情報と共に書いて貰えれば、多くの方の参考になるかと思います。 また、私のようにパラメータを変更するのではなく、send(mail)をmb_send_mailに代えて試してみるのも面白いと思います。 |
ramrun |
投稿日時: 2008/1/18 22:00
対応状況: −−−
|
仙人 登録日: 2006/11/3 居住地: 投稿: 789 |
Re: 商品購入完了時にメール配信されない(v2.0.1) orign様
ご丁寧にありがとうございます。 私もちょっと調べてみたんですが、Mail::send()をみると 引用: Bcc: を指定したい場合は、変数 recipients を連想配列にしなければなりません となっているみたいで、smtpに接続して送信となると Gabacho-Net:メールヘッダにないアドレスになぜ届く? みたいな送り方になるのではと思うのですが、そうすると、Bccをヘッダーにしか設定していないほうがおかしいような... PHP(PEAR?)のバージョンによってはheadersをrecipientsに展開しているのか、smtp側がそれをやってくれる場合があるとすれば、とりあえず設定してあったほうがいいような気がしました。 私も詳しくないので間違っていたらごめんなさい(汗)。 |
orign |
投稿日時: 2008/1/18 22:39
対応状況: −−−
|
常連 登録日: 2007/12/20 居住地: 投稿: 46 |
Re: 商品購入完了時にメール配信されない(v2.0.1) まだ勉強中で、私も説明は困難です。
ただ、現状でも多くの方がv2.0.1をインストールして検証しているはずです。 しかし、「メールが送られない」という書き込みはほぼ見あたりません。 つまりは多くのユーザーの環境では、「ヘッダにbcc分を設定することで、問題なく送信されている」と考えるしかないかな?と。 第一パラメータへのbcc指定が使えるのはPHPバージョンの新しいものからの様です。 逆に言えば、古いバージョンではヘッダに指定するしかなかったはずです。 それでbcc等の送信が出来るようになっていた・・・のではと。 (どなたかのフォーローを強く希望します・・・。) |
ramrun |
投稿日時: 2008/1/18 23:35
対応状況: −−−
|
仙人 登録日: 2006/11/3 居住地: 投稿: 789 |
Re: 商品購入完了時にメール配信されない(v2.0.1) たびたびありがとうございます。
「headersしか設定していないからbccに届かないんだよ」みたいな記事をみつけたといいながら、そのときにブックマークしておかなかったので探していました(汗)。 ↓の記事です。 [PHP-users 16643]指定したSMTPサーバからのメール送信について この質問している方の環境だと、いまどきのレンタルサーバーと比較しても十分に古いと思うのですが... ・メール配信が出来ないのですが。。。 ・EC-CUBEの受注メールについて ・注文受付メールは 私の環境でもsmtpからmailにすればOKでしたが、smtpのまま送れている人が逆にいるのでしょうか? |
ゲスト |
投稿日時: 2008/1/19 7:08
対応状況: −−−
|
Re: 商品購入完了時にメール配信されない(v2.0.1) 徹夜で勉強してみました。
ようやくバックエンドとはなんぞや?とかが判りました。 mtb_constants.phpの /** Pear::Mail バックエンド:mail|smtp|sendmail */ define('MAIL_BACKEND', "smtp"); の意味も判りました。(^^) ただそこは一般的にはSMTPのままで良いようですから、今回のメール送信不能の件とは別なので、とりあえず置いておきます。 で、肝心のsendのパラメータの件ですがこの時間で調べた限り、ヘッダに含まれたbcc宛にも送信する・・・ってな話はまったく見つけられませんでした・・・。 PHPバージョンがどうとかではなく、やはり第一パラメータ「宛先」に指定しない限り、第二パラメータの「ヘッダ」に含まれるbccは単にヘッダ表示情報となるだけでメール送信先としては機能しないのでは?と思えてきました。 3件ほどの質問スレッドのリンクを貼って頂いています。 私にすれば私がスレッドを新規に起こすまで「その程度の反応」しかなかったことが一般的トラブルではなく、自身の環境に依存した問題なのだろうと思わせていました。 が、調べる(勉強する)ほどに、こう思えてきました。 「v2.0.1をインストールして評価している方々が、単に管理者宛にメールが来ていないことに気が付いていない、もしくは、管理者宛には送らない仕様なんだ・・・と思っている」 のではないかと? そこで、どなたか「修正無しで、管理者宛(bcc)分もちゃんと届いている」方いましたら、「ウチは大丈夫です。」とのコメントを頂けると幸いです。 届いている方が居るのなら、ヘッダに含まれたbccが有効に働く事を確認できるのですが・・・。 |
|
orign |
投稿日時: 2008/1/19 7:10
対応状況: −−−
|
常連 登録日: 2007/12/20 居住地: 投稿: 46 |
Re: 商品購入完了時にメール配信されない(v2.0.1) ログイン忘れてました。
直前書き込みは私です。 |
apogee |
投稿日時: 2008/1/19 14:06
対応状況: −−−
|
常連 登録日: 2007/11/17 居住地: 大阪府 投稿: 53 |
Re: 商品購入完了時にメール配信されない(v2.0.1) 2.0.1 をテストで使用していたのですが、
たしかに注文受付のメールは届いていませんでした。 管理ページの MAIN PAGE に [新規受付一覧] が表示されますので そういう仕様だと思っていました。 お問い合わせはお問い合わせがありましたというメールが届きますので、 注文に関してはそういうものだと思っておりました。 貴重な情報をありがとうございます。 |
orign |
投稿日時: 2008/1/20 4:33
対応状況: −−−
|
常連 登録日: 2007/12/20 居住地: 投稿: 46 |
Re: 商品購入完了時にメール配信されない(v2.0.1) 更に勉強し、未熟者ながらひとつの意見が固まりました。
sendではパラメータは「宛先」「ヘッダ(サブジェクト)」「本文」の3つのみ。 mb_send_mailであれば、パラメータは「宛先」「サブジェクト」「本文」「ヘッダ」「オプション」と並びます。 sendでは「ヘッダ」に記載されたccなどはメール表示に反映されても、その宛先にメールが送信されることは一切無いようです。 (PHPバージョンに関係なく) その為、to以外にも同時にメールを送信するので有れば「宛先」にbcc分も追加するほかないかと。 (ただしPHPの古いバージョンだと、cc関係で問題があるらしく。) mb_send_mailの場合には、第四パラメータの「ヘッダ」側にbccを指定すれば送信されます。 これはmb_send_mailの場合「サブジェクト」「ヘッダ」が明確に別れていて、「ヘッダ」記載宛先についてはメール送信も行われるためです。 (mb_send_mailでは、仕様的にヘッダ記載宛先への送信が謳われています。) 実際、mb_send_mailに書き換えて試験し、そのことを確認できました。 下記ルーチンでは「宛先」にはto分のみ記載してあり、サブジェクトも念のため純粋にタイトルのみにしてあります。 ヘッダ側にbcc指定してあるのですが、そのことでちゃんとメールが届きます。 // TXTメール送信を実行する(テスト用) function sendMail2() { $subject = "ご注文受付通知(mb_send_mail版test)"; $headers = "From: $this->from\nErrors-To: $this->error\nReturn-Path: $this->from\nBcc: $this->bcc"; $option = "-f" . $this->from; // メール送信 $result = mb_send_mail($this->to,$subject,$this->body,$headers,$option); if (PEAR::isError($result)) { GC_Utils_Ex::gfPrintLog($result->getMessage()); GC_Utils_Ex::gfDebugLog($header); return false; } return true; } 今回v2系でmb_send_mailをやめてsendに変更したのは、バックエンド選択可能になるメリットからとのことでした。 今の勉強不足な私にはそのことの是非は判断できません。 ただ、今回の件だけで言えば、sendの第一パラメータがtoのみでbcc分が含まれていなかった事が原因だと思います。 v2.0.1を無修正で利用しているユーザーには、注文完了メールの管理者宛メールが届いている方は誰一人もいないと思えるのです。 大変に失礼ですが、開発陣のチェック環境でも一切届かないのではありませんか? |
meimei |
投稿日時: 2008/1/23 0:52
対応状況: −−−
|
新米 登録日: 2007/12/9 居住地: 投稿: 4 |
Re: 商品購入完了時にメール配信されない(v2.0.1) 受注のメールが届かないことは私もずっと悩んでいました。
初心者もいいところで、不具合があったときはフォーラムで記事を探し、書いてある通りに修正してきました。すべてに記事にありがとうございますと返信したいぐらいです。 この件に関しても探してSMTPをmailにするなどその他掲載されていたことをしてみましたが、文字化けしたり、問い合わせのメールまで届かなくなるなど、1箇所直すと1箇所不具合が増えるという形でうまくいきません。 パラメータ設定をすると画像が表示されなくなったり、その他たくさん不具合があるので、この件もそのうちの1つと諦めていましたが、さすがにお客様とのやりとりが遅れてしまうので本当に困っていました。 運用しながらですので、いつも恐々いじっています。 無料で提供してもらって愚痴ばかりになってしまいましたが、今後修正されることを祈りつつ、 ここの書いてあるとおりに頑張って改造してみます。 また、良い方法がありましたら教えて下さい。 よろしくお願いします。 |
« 1 (2) 3 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |