バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > commandファイルからメールを送信したいです。

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kore
投稿日時: 2017/10/30 22:54
対応状況: −−−
半人前
登録日: 2017/9/26
居住地:
投稿: 22
commandファイルからメールを送信したいです。
現在、commandファイルからメールを送信したいのですが出来ず、困っております。受注完了メールは届く状態ですので、メールそのものが届けられないということはありません。
既存のmailServiceは、commandファイルから呼び出す方法はありますでしょうか?
おわかりになる方いらっしゃいましたらご教示いただけませんでしょうか?
よろしくお願いいたします!

[EC-CUBE] 3.0.15
[レンタルサーバ] ゼンロジック
[OS] CentOS 6.7
[PHP] 7.1
[データベース] MySQL 5.6
[WEBサーバ] Apache 2.2.x
[ブラウザ] Google Chrome
[導入プラグインの有無] プラグインジェネレータ、Wysiwygエディタ
k-yamamura
投稿日時: 2017/10/30 23:22
対応状況: −−−
一人前
登録日: 2015/7/8
居住地:
投稿: 72
Re: commandファイルからメールを送信したいです。
kore 様

MailServiceを利用する方法ではないのですが、
以下のようにするとcommandからでもメール送信は可能です。

一点気をつけて欲しいのは、
mail.ymlにあるuse_spoolを
use_spool: false

とfalseにしてください。

MailServiceも呼び出せば利用できると思いますのでお試しください。


<?php

namespace Eccube\Command;

use Eccube\Application;
use Knp\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Style\SymfonyStyle;

/**
 * Class XXXXXCommand
 *
 * @package Eccube\Command
 */
class XXXXXCommand extends Command
{

    protected function configure()
    {
        $this
            ->setName('xxxx:xxxx-mail')
            ->setDescription('XXXX Mail')
            ->setHelp(<<<EOF
The <info>%command.name%</info> command XXXX Mail,
EOF
            );
    }

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $io = new SymfonyStyle($input, $output);
        $io->title('XXXX Mail Start.');

        /** @var Application $app */
        $app = $this->getSilexApplication();

        $paths[] = $app['config']['root_dir'].'/app/template/admin';
        $paths[] = $app['config']['template_admin_realdir'];
        $app['twig.loader']->addLoader(new \Twig_Loader_Filesystem($paths));

        $BaseInfo = $app['eccube.repository.base_info']->get();

        $body = $app->renderView('Mail/xxxxxmail.twig', array(
            'BaseInfo' => $BaseInfo,
        ));

        $message = \Swift_Message::newInstance()
            ->setSubject('['.$BaseInfo->getShopName().'] メール送信')
            ->setFrom(array($BaseInfo->getEmail01() => $BaseInfo->getShopName()))
            ->setTo($BaseInfo->getEmail01())
            ->setBcc($BaseInfo->getEmail01())
            ->setReplyTo($BaseInfo->getEmail03())
            ->setReturnPath($BaseInfo->getEmail04())
            ->setBody($body);

        $app->mail($message);

        $io->success('XXXX Mail End.');
    }

}



実行時はターミナルより、
php app/console xxxx:xxxx-mail

と実行すれば動作します。



----------------
株式会社キュール
support@cule.jp

EC-CUBE3で困ったことがありましたらお気軽にご相談ください。
kore
投稿日時: 2017/10/31 0:15
対応状況: −−−
半人前
登録日: 2017/9/26
居住地:
投稿: 22
Re: commandファイルからメールを送信したいです。
回答いただきありがとうございます!!
use spool : false
これを設定するとメールが送れることを確認できました!
ですが、もう一点質問させてください・・・

現在、[src/Eccube/Command]配下で、app/consleを利用してメールを送信しようとしており、そのメール本文を[app/template/XXXX/Mail]配下のtwigを用いてrenderView()したいのですが、ターミナル実行時点で、下記エラーが発生しております。

[Twig_Error_Loader]
Template "Mail/example.twig" is not defined.

当該twigファイルは確かに[app/template/XXXX/Mail]配下に存在しており、相対パス、絶対パス共に試行しましたが、いずれもエラー内容は変わりません。

どうすれば、[app/template/XXXX/Mail]配下のテンプレートをメール本文として利用することができるでしょうか?

ご確認よろしくお願いいたします。
k-yamamura
投稿日時: 2017/10/31 0:44
対応状況: −−−
一人前
登録日: 2015/7/8
居住地:
投稿: 72
Re: commandファイルからメールを送信したいです。
kore 様

送信が出来たということで良かったです。

メールが存在しないということですが、

$paths[] = $app['config']['root_dir'].'/app/template/admin';
$paths[] = $app['config']['template_admin_realdir'];
$app['twig.loader']->addLoader(new \Twig_Loader_Filesystem($paths));

の部分は
app/template/admin

を配下を参照しているようにしています。
$paths[] = $app['config']['template_realdir'];
$paths[] = $app['config']['template_default_realdir'];
$app['twig.loader']->addLoader(new \Twig_Loader_Filesystem($paths));

とすれば表示されるようになると思いますのでお試しください。



----------------
株式会社キュール
support@cule.jp

EC-CUBE3で困ったことがありましたらお気軽にご相談ください。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1291
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.