Saya telah mengupgrade website saya untuk 1.9.1 dan sekarang pelanggan saya tidak menerima email konfirmasi pesanan.
Aku mencoba mengirim melalui panel admin tapi tidak terjadi apa-apa, juga tidak ada update email yang diterima.
Ada 2 metode untuk mengirim mail dari kami Magento 1 toko.
Jika anda ingin menghindari cron :
Buka order.php file di
app/code/core/Mage/Sales/Model/Order.php
Line#1356,1450,
perubahan
//$mailer->setQueue($emailQueue)->send();
untuk:
$mailer-> send();
Di app/design/frontend/tempat/default/template/checkout/sukses.phtml
:
tambahkan baris berikut Atas keberhasilan halaman untuk mengirim e-mail langsung
$order = Mage::getModel('sales/order');
$incrementId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
$order->loadByIncrementId($incrementId);
try{
$order->sendNewOrderEmail();
} catch (Exception $ex) {
echo "Email Not Sent...";
}
$customer = Mage::getSingleton('customer/session')->getCustomer();
$email = $customer->getEmail();
//End Email Sending
saya dihapus berikut mail antrian kode dari Template.php , maka aku mulai menerima email ketika pesanan ditempatkan oleh pelanggan atau ketika saya klik mengirim email dari admin panel "Penjualan/Pesanan" tab.
Magento telah mengatur urutan email yang akan dikirim oleh jadwal pekerjaan, bukan instan email... mungkin untuk alasan kinerja?(aku tidak tahu mengapa, saya sangat baru untuk magento)... namun saya akan menempatkan kode ini kembali di Template.php dan menemukan cara untuk mengatur dan menjalankan jadwal pekerjaan yang harus dijalankan setiap 5 menit...
Template.php adalah hotel yang terletak strategis di => /app/code/core/Mage/Core/Model/Email/Template.php
if ($this->hasQueue() && $this->getQueue() instanceof Mage_Core_Model_Email_Queue) {
/** @var $emailQueue Mage_Core_Model_Email_Queue */
$emailQueue = $this->getQueue();
$emailQueue->setMessageBody($text);
$emailQueue->setMessageParameters(array(
'subject' => $subject,
'return_path_email' => $returnPathEmail,
'is_plain' => $this->isPlain(),
'from_email' => $this->getSenderEmail(),
'from_name' => $this->getSenderName(),
'reply_to' => $this->getMail()->getReplyTo(),
'return_to' => $this->getMail()->getReturnPath(),
))
->addRecipients($emails, $names, Mage_Core_Model_Email_Queue::EMAIL_TYPE_TO)
->addRecipients($this->_bccEmails, array(), Mage_Core_Model_Email_Queue::EMAIL_TYPE_BCC);
$emailQueue->addMessageToQueue();
return true;
}
Ada dua solusi sebagai berikut:
Solusi-01: Menggunakan cron
Sistem > Konfigurasi > > Lanjutan; Sistem > Cron
Pengaturan default adalah:
Pertama-tama, Magento 1.9+ bergantung sepenuhnya pada pekerjaan cron untuk mengirim email transaksional. Jika anda tidak memiliki pekerjaan cron diatur dengan benar sebelum, anda akan harus melakukannya sekarang.
Pertama-tama pastikan anda telah mengatur tugas cron di Magento admin di bawah
Sistem > Konfigurasi > > Lanjutan; Sistem > Cron
Pengaturan default adalah:
Menghasilkan Jadwal Setiap 15 Promo ke Depan selama 20 Terjawab jika Tidak Menjalankan Sekitar 15 Sejarah Pembersihan Setiap 10 Sukses Sejarah Seumur hidup 60 Sejarah Kegagalan Seumur hidup 600
Ada orang-orang yang menunjukkan pengaturan ini harus diubah, tapi karena mereka tidak bisa setuju pada kombinasi terbaik, lebih baik aku biarkan seperti itu.
Anda kemudian harus pergi ke control panel hosting anda dan set up cron jobs. Di cPanel itu di bawah Canggih > Cron Jobs. Mengatur mereka untuk berjalan setiap lima menit dan gunakan perintah ini:
php -f /home/username/public_html/cron.php
Periksa bahwa jalan di atas adalah benar dan bahwa file cron.php ini benar-benar ada di root instalasi Magento anda (jika anda baru saja upgrade, itu harus). Mengubah nama pengguna untuk akun yang benar.
Sekarang, awalnya saya membuat kesalahan dengan mengikuti saran dari para pengembang di xtento.com yang mengatakan untuk menggunakan wget string perintah: wget -O /dev/null -q http://www.YOURDOMAIN.com/PATH_TO_MAGENTO/cron.php
Solusi-02:Menghindari cron
Email transaksional akan dikirim langsung.
//app/code/core/Mage/Sales/Model/Order.php Line#1356,1450
//$mailer->setQueue($emailQueue)->send(); Change To
$mailer->send();
app/design/frontend/base/default/template/checkout/success.phtml
//add following line Top success page for sending mail direct
// Start Send Emai Here......
$order = Mage::getModel('sales/order');
$incrementId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
$order->loadByIncrementId($incrementId);
try{ $order->sendNewOrderEmail();}
catch (Exception $ex) { echo "Email Not Sent..."; }
$customer = Mage::getSingleton('customer/session')->getCustomer();
$email = $customer->getEmail();//End Email Sending
Dengan Magento 1.9 semua email akan antri dan kemudian mengirim melalui Cron.
Jika anda ingin Transaksi anda, Email akan dikirim melalui Cron, anda dapat mengatur cron dari dari Sistem>Konfigurasi>*Sistem* di bawah tab Cron ATAU membuat cron di Cpanel langsung ke cron.sh atau cron.php** terletak di root Magento anda dan menghapusnya.
Hanya menginstal "SMTP Email Pro" extension: http://www.magentocommerce.com/magento-connect/smtp-pro-email-free-custom-smtp-email.html
Isi dengan Kustom anda SMTP rincian dan dilakukan.
Ini butuh waktu dua hari penuh untuk mencari tahu. Tidak ada Pekerjaan Cron diperlukan, meskipun jika anda ingin cron jobs kerja dan anda don't ingin melakukan hal di atas, anda dapat melakukan hal-hal berikut:
Setelah:
$isShellDisabled = (stripos(PHP_OS, ‘win’) === false) ? $isShellDisabled : true;
tambahkan baris kode ini:
$isShellDisabled = true;
Pada Panel C terbuka Cron Jobs bagian
Membuat cron job yang menjalankan perintah berikut setiap 15 menit:
php -f /home/USERNAME/public_html/domain.com/magento_folder/cron.php
Di 1.9.1.0 Magento, Magento telah menambahkan fitur baru: Mereka menyimpan email pesanan dalam core_email_queue
meja untuk mengirim email pesanan. Kita harus mengatur cron.php
di server
The cron.php
file set core_email_queue_send_all
di cron jadwal meja. Ketika nenek melaksanakan "kirim" metode yang disebut dari Mage_Core_Model_Email_Queue
. Mereka mengirim email ke pelanggan.
Jadi di atas adalah memperbaiki kerja tanpa ada perubahan dalam file inti.
Menggunakan n98-magerun saya hanya jalankan perintah berikut:
n98-magerun sys:cron:menjalankan core_email_queue_send_all
Atau waktu untuk itu jika anda don't ingin menjalankan semua waktu:
watch-n 10 n98-magerun sys:cron:menjalankan core_email_queue_send_all
Ini mengirimkan semua email dalam antrian setiap 10 detik.
Hanya melakukan cron setup pada server anda sebagai berikut command & kemudian anda akan mulai menerima penjualan e-mail.
php -q /home/YOUR_USER_NAME/public_html/Path_to_cron.php
Gunakan pengaturan umum seperti " ***** "
Perlu mengganti YOUR_USER_NAME & Path_to_cron.php dengan anda.
Aku mengikuti basis pengetahuan untuk membuatnya bekerja: http://www.magentocommerce.com/knowledge-base/entry/ee1141-ce191-responsive-email#contact-info
Di bagian "Lokalisasi Email Transaksional",setelah mengikuti petunjuk sebelumnya, menyalin /en_UK akhirnya mendapat email pada cara mereka (termasuk orang-orang yang sebelumnya tidak dikirim), Kami juga punya masalah dengan halaman konfirmasi pesanan tidak ditampilkan kepada pelanggan pada saat penyelesaian. Ini telah diperbaiki juga.
Misalnya untuk en_GB lokal anda akan perlu untuk menyalin file yang terletak di:
aplikasi/locale/en_US/template/email
ke lokasi:
aplikasi/lokal/en_GB/template/email
jika itu HANYA email agar tidak mengirim, itu karena Magento antrian hanya agar email dan menyimpannya untuk mengirim mereka keluar dalam batch. Jika anda don't memiliki Detak jantung anda Cron setup.. maka mereka tidak akan pernah meninggalkan Magento antrian.
Anda're melihat lain Magento email keluar karena orang-orang yang menyerahkan langsung dari Magento anda mailer daemon. Orang-orang Magento antrian (seperti email) apa't bahkan diserahkan ke mailer daemon sampai Hearbeat Cron berjalan.
Untuk memaksa mereka untuk pergi keluar... arahkan ke http://yourmagentodomain.com/cron.php dan tetap menyegarkan halaman tersebut setiap lima menit dan anda'll melihat antrian order email mulai untuk pergi keluar. Detak jantung Cron seharusnya melakukan ini untuk anda. Oh, dan ketika anda menavigasi ke yang cron.php file, halaman yang seharusnya kosong jadi don't khawatir... itu akan bekerja.
Jika sistem e-mail(smtp, zend_mail) bekerja dengan baik; menonaktifkan mailQueue dapat memecahkan masalah anda.
/app/code/core/Mage/Core/Model/Email/Template.php
Perubahan Line 407
if ($this->hasQueue() && $this->getQueue() instanceof Mage_Core_Model_Email_Queue) {
untuk
if (false /\*$this->hasQueue() && $this->getQueue() instanceof Mage_Core_Model_Email_Queue\*/) {
Jika anda memiliki ekstensi SMTPpro daripada mencoba untuk menonaktifkannya. Dan periksa lagi. Semua email bekerja dengan baik dan anda hanya perlu untuk mengkonfigurasi dengan benar.
Cara yang lebih baik adalah membuat salinan dari anda app/code/core/Mage/Core/Model/Email/Template/Mailer.php
Untuk folder lokal anda app/code/local/Mage/Core/Model/Email/Template/Mailer.php
Kemudian komentar baris ini sejalan 76
->setQueue($this->getQueue())
Kemudian anda'kembali dilakukan. Tidak perlu untuk memodifikasi sukses.phtml template. :D