注文確認メールがmagento 2で送信されない


9

私は私のvpsサーバーにmagento 2をインストールし、このようにストアのメールを設定しました

しかし、注文確認メールは何をすべきかを顧客に送信しません、これを行うために推奨されるリンクとしてcronをセットアップする必要がありますか、またはこのリンクのようにサーバーを構成する必要 がありますか?


設定されたcronで試してください。
Dhiren Vasoya 2017年

回答:


14

Magento 2のメールシステムを適切に設定している場合は、以下の点を確認する必要があります。

  1. に行きました Stores -> Configuration -> Advanced -> System

下にメール送信設定を確認するDisable Email Communicationsに設定されていますNo。また、外部メールサーバーを使用している場合は、HostおよびPortフィールドを確認してください。

  1. に行きました Stores -> Configuration -> Sales -> Sales Emails

下では一般設定 ]タブ、選択Asynchronous sendingしますDisable

Orderタブの下EnabledYes

キャッシュをクリア/リフレッシュしてください。

これがお役に立てば幸いです。このソリューションはMagento 2.1.0でテストされています


1
「非同期送信」はありません
Deepak Kamat

使用しているmagentoのバージョンは何ですか?
カマル・シン

It's Magento / 2.2(Community)
Deepak Kamat

Magento 2.2.7に問題があります
Pratik Mehta

2.2.7で動作しない
Navin Bhudiya

4

これは機能します。

transportbuilderbystoreクラスは2.3ですでに非推奨になっており、まもなく2.2で提供されます。

Magento 2.2.7で修正されました。

修正:vendor / magento / module-sales / Model / Order / Email / SenderBuilder.php

取り替える

    $this->transportBuilderByStore->setFromByStore(
        $this->identityContainer->getEmailIdentity(),
        $this->identityContainer->getStore()->getId()
    );

    $this->transportBuilder->setFrom(
        $this->identityContainer->getEmailIdentity(), 
        $this->identityContainer->getStore()->getId()
    ); 

vendor / magento / framework / Mail / Template / TransportBuilder.php

取り替える

/**
 * Set mail from address
 *
 * @param string|array $from
 * @return $this
 */
public function setFrom($from)
{
    $result = $this->_senderResolver->resolve($from);
    $this->message->setFrom($result['email'], $result['name']);
    return $this;
}

/**
 * Set mail from address
 *
 * @param string|array $from
 * @return $this
 */
public function setFrom($from, $store = null)
{
    $result = $this->_senderResolver->resolve($from, $store);
    $this->message->setFrom($result['email'], $result['name']);
    return $this;
}

同様に、TransportBuilderByStoreは不要になり、期待どおりに機能します。


1
このソリューションのメール送信停止を使用した場合、機能しません
Navin Bhudiya


0

同じ問題があり、実際の問題は「from」ヘッダーが原因であることがわかりました。どういうわけか二度セットされていました。この問題を解決するには、以下のファイルを更新してください:

vendor \ magento \ framework \ Mail \ Template \ TransportBuilderByStore

public function setFromByStore($from, $store)
{
    $result = $this->senderResolver->resolve($from, $store);
    $this->message->setFrom($result['email'], $result['name']);

    return $this;
}

public function setFromByStore($from, $store)
{
    $result = $this->senderResolver->resolve($from, $store);

    if ($this->message->getFrom()) {
        $this->message->clearFrom();
    }

    $this->message->setFrom($result['email'], $result['name']);

    return $this;
}

2.2.7
Navin Bhudiya
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.