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?


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


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.


1
tidak berfungsi, jika saya menggunakan berhenti mengirim solusi email ini
Navin Bhudiya


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

tidak mengerjakan solusi ini untuk saya 2.2.7
Navin Bhudiya
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.