email di conferma ordine non inviata in magento 2


9

Ho installato magento 2 sul mio server vps e configurato l'email del negozio in questo modo

ma l'email di conferma dell'ordine non invierà ai clienti cosa devo fare, devo impostare cron come un collegamento consigliato per fare questo o devo configurare il mio server come questo collegamento qual è il problema?


Prova con cron configurato.
Dhiren Vasoya,

Risposte:


14

Se hai configurato correttamente i sistemi di posta Magento 2, potresti dover controllare il punto seguente:

  1. Devo Stores -> Configuration -> Advanced -> System

In Impostazioni di invio posta assicurati che Disable Email Communicationssia impostato su No. Verificare anche i campi Hoste Portse si utilizza un server di posta esterno.

  1. Devo Stores -> Configuration -> Sales -> Sales Emails

Nella scheda Impostazioni generali , scegliere Asynchronous sendingdiDisable

Nella Orderscheda EnabledaYes

Ora cancella / aggiorna la cache.

Spero che questo ti aiuti. Questa soluzione è stata testata con Magento 2.1.0


1
Non c'è "Invio asincrono"
Deepak Kamat,

Qual è la versione di Magento che stai utilizzando?
Kamal Singh,

It's Magento / 2.2 (Community)
Deepak Kamat

Ho un problema in Magento 2.2.7
Pratik Mehta

non funziona con 2.2.7
Navin Bhudiya,

4

Questo funzionerà.

La classe transportbuilderbystore è già stata deprecata in 2.3 e presto sarà in 2.2.

Risolto in Magento 2.2.7.

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

sostituire

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

con

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

vendor / magento / quadro / Mail / template / TransportBuilder.php

sostituire

/**
 * 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;
}

con

/**
 * 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;
}

e proprio così non abbiamo più bisogno di TransportBuilderByStore e funziona come previsto.


1
non funzionante, se ho usato questa soluzione per l'invio di e-mail stop
Navin Bhudiya,


0

Ho avuto lo stesso problema e ho scoperto che il vero problema era causato dall'intestazione "from". È stato impostato due volte per qualche motivo. Aggiorna il file seguente per risolvere questo problema:

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;
}

Per

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;
}

non funziona questa soluzione per me 2.2.7
Navin Bhudiya,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.