バージョン選択

フォーラム

メニュー

オンライン状況

53 人のユーザが現在オンラインです。 (46 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 53
もっと...

サイト内検索

質問 > その他 > OutlookメールでSMTP送信すると全てのメールが2通ずつ送られてしまいます。

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
投稿日時: 2016/12/1 17:30
対応状況: −−−
OutlookメールでSMTP送信すると全てのメールが2通ずつ送られてしまいます。
mail.ymlは、このように設定しています。

mail:
transport: smtp
host: smtp-mail.outlook.com
port: 587
username: ***@outlook.jp
password: ***
encryption: TLS
auth_mode: login
charset_iso_2022_jp: true

送り先と管理者にそれぞれ2通ずつ送信されてしまいます。
仮会員、登録完了、注文受付メールなど全てです。

EC-CUBE2ではそれらしい投稿があったのですが、EC-CUBEb3.0ではどうすればよいか分かりません。
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&topic_id=3557&forum=2

2の「\data\class\SC_SendMail.php」に当たるものは3.0ではどこに行ってしまったのでしょうか?

ご存知の方がいましたら、ご教示頂ければ幸いです。

------------------------------------------------------------------------------------------

[EC-CUBE]3.0.12-p1 新規インストール
[レンタルサーバ]Lv9ホスティング
[OS] Linux freeweb20.byetcluster.com 2.6.32-531.29.2.lve1.3.11.1.el6.x86_64 #1 SMP Thu Dec 18 06:49:17 EST 2014 x86_64
[データベース] MySQL 5.6.32-78.0
[WEBサーバ] Apache 2.4.178
[ブラウザ] Chrome 54.0.2840.99 m (64-bit)
[導入プラグインの有無] なし
[カスタマイズの有無]] mail.ymlの編集のみ
[PHP] 5.6.23 (Core, date, ereg, libxml, openssl, pcre, sqlite3, zlib, bcmath, calendar, ctype, curl, dom, hash, fileinfo, filter, ftp, gd, gettext, SPL, iconv, session, intl, json, mbstring, mcrypt, standard, mysqlnd, mysqli, mysql, PDO, pdo_mysql, pdo_sqlite, Phar, Reflection, imap, SimpleXML, soap, exif, tokenizer, xml, xmlreader, xmlrpc, xmlwriter, xsl, zip, apache2handler, phalcon, ionCube Loader, Zend Guard Loader

------------------------------------------------------------------------------------------
umebius
投稿日時: 2016/12/2 7:46
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: OutlookメールでSMTP送信すると全てのメールが2通ずつ送られてしまいます。
引用:
2の「\data\class\SC_SendMail.php」に当たるものは3.0ではどこに行ってしまったのでしょうか?


/src/Eccube/Service/MailService.php が該当するかと思います。

メソッドの対応としましては、
仮会員: sendCustomerConfirmMail
登録完了:sendCustomerCompleteMail
注文受付メール: sendOrderMail


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

468
投稿日時: 2016/12/2 10:55
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: OutlookメールでSMTP送信すると全てのメールが2通ずつ送られてしまいます。
Microsoftコミュニティのほうに以下のような投稿がありました。

メールを送信すると送信済みに2通
https://answers.microsoft.com/ja-jp/outlook_com/forum/oemail-osend/%E3%83%A1%E3%83%BC%E3%83%AB%E3%82%92%E9%80%81/c079b76f-dfbe-442c-a2d0-4aa479ee8b02

「outlook.com 2通」でWEBを検索してみると
いくつか事例があるようですが、
メールクライアントの設定によっては2重受信したりするようです。

EC-CUBE以外のメール送信、受信は特に問題無いのでしょうか?
ゲスト
投稿日時: 2016/12/2 18:51
対応状況: −−−
Re: OutlookメールでSMTP送信すると全てのメールが2通ずつ送られてしまいます。
返信ありがとうございます。

/src/Eccube/Service/MailService.php の各メール部分に記載されていた ->setBcc($this->BaseInfo->getEmail01()) を削除してみましたところ
送り先には正常に1通のみ届くようになりましたが、管理者宛てには1通も届かなくなってしまいました。

普段はブラウザやWindows 10メールアプリでOutlookメールを使用しておりますが、その際に二重になった事はありません。
468
投稿日時: 2016/12/5 10:06
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: OutlookメールでSMTP送信すると全てのメールが2通ずつ送られてしまいます。
Outlookでは、BCCで送信すると2通ずつ届くような仕様なのでしょうかね?

$count = $this->app->mail($message, $failures);
の記述のところでメールを送信していると思いますので、
その後に、管理者宛のメールをもう1件送信するようにしてみては如何でしょうか?

setToのところを$this->BaseInfo->getEmail01()に書き換えると管理者宛のメールを送信できると思います。
$message = \Swift_Message::newInstance()
            ->setSubject('[' . $this->BaseInfo->getShopName() . '] 会員登録のご確認')
            ->setFrom(array($this->BaseInfo->getEmail01() => $this->BaseInfo->getShopName()))
            ->setTo(array($this->BaseInfo->getEmail01()))
            ->setReplyTo($this->BaseInfo->getEmail03())
            ->setReturnPath($this->BaseInfo->getEmail04())
            ->setBody($body);
            
$count = $this->app->mail($message, $failures);

ゲスト
投稿日時: 2016/12/6 15:54
対応状況: −−−
Re: OutlookメールでSMTP送信すると全てのメールが2通ずつ送られてしまいます。
返信ありがとうございます。

setToのところを$this->BaseInfo->getEmail01()に書き換えてみましたところ、顧客に1通も届かなくなり管理者宛てに2通届くようになりました。

Outlook.comでは、メールアプリ等の差出人名設定を無視してサーバー側でMicrosoftアカウントの名前が付けられ送信される仕様なのですが、これが関係しているのでしょうか?

EC-CUBEから送信時も基本的にMSアカウントの名前で送信されるのですが、たまに管理者宛てに届いたメールの片方がMSアカウントの名前ではなかったり、両方ともMSアカウントの名前ではなかったりします。
468
投稿日時: 2016/12/6 18:22
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: OutlookメールでSMTP送信すると全てのメールが2通ずつ送られてしまいます。
すみません。
私の書き方が分かりずらかったかもしれませんが、
既にある記述を変更するのではなく、書き足すというつもりでした。

例えば、仮会員登録メール送信の場合、以下のデフォルトのソースを
$body = $this->app->renderView('Mail/entry_confirm.twig', array(
            'Customer' => $Customer,
            'BaseInfo' => $this->BaseInfo,
            'activateUrl' => $activateUrl,
        ));

        $message = \Swift_Message::newInstance()
            ->setSubject('[' . $this->BaseInfo->getShopName() . '] 会員登録のご確認')
            ->setFrom(array($this->BaseInfo->getEmail01() => $this->BaseInfo->getShopName()))
            ->setTo(array($Customer->getEmail()))
            ->setBcc($this->BaseInfo->getEmail01())
            ->setReplyTo($this->BaseInfo->getEmail03())
            ->setReturnPath($this->BaseInfo->getEmail04())
            ->setBody($body);

        $event = new EventArgs(
            array(
                'message' => $message,
                'Customer' => $Customer,
                'BaseInfo' => $this->BaseInfo,
                'activateUrl' => $activateUrl,
            ),
            null
        );
        $this->app['eccube.event.dispatcher']->dispatch(EccubeEvents::MAIL_CUSTOMER_CONFIRM, $event);

        $count = $this->app->mail($message, $failures);

        log_info('仮会員登録メール送信完了', array('count' => $count));

以下のように変更するという意味です。
$body = $this->app->renderView('Mail/entry_confirm.twig', array(
            'Customer' => $Customer,
            'BaseInfo' => $this->BaseInfo,
            'activateUrl' => $activateUrl,
        ));

        $message = \Swift_Message::newInstance()
            ->setSubject('[' . $this->BaseInfo->getShopName() . '] 会員登録のご確認')
            ->setFrom(array($this->BaseInfo->getEmail01() => $this->BaseInfo->getShopName()))
            ->setTo(array($Customer->getEmail()))
            ->setReplyTo($this->BaseInfo->getEmail03())
            ->setReturnPath($this->BaseInfo->getEmail04())
            ->setBody($body);

        $event = new EventArgs(
            array(
                'message' => $message,
                'Customer' => $Customer,
                'BaseInfo' => $this->BaseInfo,
                'activateUrl' => $activateUrl,
            ),
            null
        );
        $this->app['eccube.event.dispatcher']->dispatch(EccubeEvents::MAIL_CUSTOMER_CONFIRM, $event);

        $count = $this->app->mail($message, $failures);
        
        //管理者向けのメール送信をここに追記↓
        $message = \Swift_Message::newInstance()
        ->setSubject('[' . $this->BaseInfo->getShopName() . '] 会員登録のご確認')
        ->setFrom(array($this->BaseInfo->getEmail01() => $this->BaseInfo->getShopName()))
        ->setTo(array($this->BaseInfo->getEmail01()))
        ->setReplyTo($this->BaseInfo->getEmail03())
        ->setReturnPath($this->BaseInfo->getEmail04())
        ->setBody($body);
        
        $countDummy = $this->app->mail($message, $failures);
        //ここまで↑

        log_info('仮会員登録メール送信完了', array('count' => $count));


これと同じような追記を
MailService.phpのfunctionの分だけ変更する必要があると思います。
ゲスト
投稿日時: 2016/12/6 20:39
対応状況: −−−
Re: OutlookメールでSMTP送信すると全てのメールが2通ずつ送られてしまいます。
勘違い失礼しました。

書き足す形でそれぞれのfuctionを修正しましたところ、
全てのメールが顧客宛てに1通、管理者宛てに2通ずつ届くようになりました。

見栄えが悪いですが、使えないこともない状態です。

Outlook.comメールでは、これ以上の改善は見込めないでしょうか?
468
投稿日時: 2016/12/7 9:02
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: OutlookメールでSMTP送信すると全てのメールが2通ずつ送られてしまいます。
この状態で管理者に2通届きますか?

ちなみに最初のメール送信の設定をしているところのsetBccは削除されていますか?
ゲスト
投稿日時: 2016/12/7 14:30
対応状況: −−−
Re: OutlookメールでSMTP送信すると全てのメールが2通ずつ送られてしまいます。
setBccを削除すると、顧客宛てに1通だけ届き、管理者宛てには1通も届かず
setBccを削除した上で「管理者向けのメール送信」を追記すると、顧客宛てに1通、管理者宛てに2通届きました。

setBccを削除していない状態で追記もしてみましたが、顧客宛てに2通、管理者宛てに4通届きました。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,711名です
総投稿数は109,948件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1285
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.