konfirmasi pemesanan, email tidak terkirim dalam magento 2

9

Saya Menginstal magento 2 di server vps saya dan mengkonfigurasi email toko seperti ini

tetapi email konfirmasi pesanan tidak akan dikirim ke pelanggan apa yang harus saya lakukan, haruskah saya mengatur cron karena beberapa tautan direkomendasikan untuk melakukan ini atau saya harus mengkonfigurasi server saya seperti tautan ini apa masalahnya?

ali gh
sumber
Coba dengan cron yang dikonfigurasi.
Dhiren Vasoya

Jawaban:

14

Jika Anda telah mengkonfigurasi sistem pengiriman Magento 2 dengan benar, Anda mungkin perlu memeriksa poin di bawah ini:

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

Di bawah Pengaturan Pengiriman Surat, pastikan Disable Email Communicationsdiatur ke No. Juga verifikasi bidang Hostdan PortAnda jika Anda menggunakan server surat eksternal.

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

Di bawah tab Pengaturan Umum , pilih Asynchronous sendinguntukDisable

Di bawah Ordertab EnableduntukYes

Sekarang hapus / segarkan cache Anda.

Semoga ini bisa membantu Anda. Solusi ini diuji dengan Magento 2.1.0

Kamal Singh
sumber
1
Tidak ada "Pengiriman yang tidak sinkron"
Deepak Kamat
Apa versi magento yang Anda gunakan?
Kamal Singh
It's Magento / 2.2 (Komunitas)
Deepak Kamat
Saya memiliki masalah di Magento 2.2.7
Pratik Mehta
tidak bekerja dengan 2.2.7
Navin Bhudiya
4

Ini akan bekerja

Kelas transportbuilderbystore sudah tidak digunakan lagi di 2.3 dan sebentar lagi akan 2.2.

Diperbaiki di Magento 2.2.7.

Perbaiki: vendor / magento / modul-penjualan / Model / Order / Email / SenderBuilder.php

menggantikan

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

dengan

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

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

menggantikan

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

dengan

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

dan seperti itu kita tidak perlu TransportBuilderByStore lagi dan berfungsi seperti yang diharapkan.

Pratik Mehta
sumber
1
tidak berfungsi, jika saya menggunakan berhenti mengirim solusi email ini
Navin Bhudiya
Periksa ini. github.com/magento/magento2/issues/16355
Pratik Mehta
0

Saya memiliki masalah yang sama dan menemukan bahwa masalah sebenarnya disebabkan karena header "dari". Itu sedang diatur dua kali karena beberapa alasan. Harap perbarui file di bawah ini untuk menyelesaikan masalah ini:

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

Untuk

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;
}
Himmat Paliwal
sumber
tidak mengerjakan solusi ini untuk saya 2.2.7
Navin Bhudiya