উত্তর:
cron.sh
চলছে! ক্রোনটি সঠিকভাবে কনফিগার করা হয়েছে তা আবিষ্কার করার জন্য আমরা কেবল একটি পুরো দিন এটি ডিবাগ করে কাটিয়েছি।
আমাদের ম্যাজেন্টো 1 স্টোর থেকে মেলগুলি প্রেরণের জন্য 2 টি পদ্ধতি রয়েছে।
আপনি যদি ক্রোন এড়াতে চান:
আপনার অর্ডার.এফপি ফাইলটি এখানে খুলুন
অ্যাপ্লিকেশন / কোড / কোর / পুরোনো যাদুকর / বিক্রয় / মডেল / Order.php
লাইন # 1356,1450,
পরিবর্তন
//$mailer->setQueue($emailQueue)->send();
প্রতি:
$mailer-> send();
ইন app/design/frontend/base/default/template/checkout/success.phtml
: মেল সরাসরি প্রেরণের জন্য নিম্নলিখিত লাইন শীর্ষ সাফল্য পৃষ্ঠা যুক্ত করুন
$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
আমি টেমপ্লেট.এফপি থেকে নিম্নলিখিত মেল কাতার কোডটি সরিয়েছি, তখন গ্রাহক দ্বারা অর্ডার দেওয়া হয় বা আমি যখন প্রশাসক প্যানেল "বিক্রয় / আদেশ" ট্যাব থেকে ইমেল প্রেরণ করতে ক্লিক করি তখন আমি ইমেল পেতে শুরু করি।
ম্যাজেন্টো তাত্ক্ষণিক ইমেলের পরিবর্তে তফসিল কাজের মাধ্যমে পাঠানোর আদেশ ইমেলটি সেট করেছিল ... সম্ভবত কার্য সম্পাদনের কারণে? টেমপ্লেট.এফপি এবং প্রতি 5 মিনিটে চালানোর জন্য শিডিয়ুল কাজ সেট এবং চালানোর জন্য একটি উপায় সন্ধান করুন ...
টেমপ্লেট.এফপিটি => / অ্যাপ্লিকেশন / কোড / কোর / ম্যাজ / কোর / মডেল / ইমেল / টেম্পলেট.এফপিতে অবস্থিত
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;
}
নীচে দুটি সমাধান রয়েছে:
সমাধান -01: ক্রোন ব্যবহার করে
সিস্টেম> কনফিগারেশন> উন্নত> সিস্টেম> ক্রোন
ডিফল্ট সেটিংস হ'ল:
সবার আগে, Magento 1.9+ লেনদেনের ইমেলগুলি প্রেরণের জন্য ক্রোন জবগুলিতে সম্পূর্ণভাবে নির্ভর করে। যদি আপনার আগে ক্রোন জবগুলি সঠিকভাবে সেট আপ না করা থাকে তবে আপনাকে এখনই এটি করতে হবে।
প্রথমে নিশ্চিত হয়ে নিন যে আপনি ম্যাগন্টো প্রশাসকের অধীনে ক্রোন কার্যগুলি সেট আপ করেছেন
সিস্টেম> কনফিগারেশন> উন্নত> সিস্টেম> ক্রোন
ডিফল্ট সেটিংস হ'ল:
১৫ টি ইতিহাসের ক্লিপআপের মধ্যে না চালিত হলে 20 এর আগে প্রতিটি 15 সময়সূচী নির্ধারণ করা মিস হয়েছে সাফল্যের ইতিহাস লাইফটাইম 60 ব্যর্থতার ইতিহাস লাইফটাইম 600
এমন লোকেরা আছেন যাঁকে এই সেটিংস পরিবর্তন করার পরামর্শ দেওয়া হচ্ছে, তবে যেহেতু তারা সেরা সংমিশ্রণের সাথে একমত হতে পারে না, তাই আমি বরং এটি এটিকে ছেড়ে দিই।
তারপরে আপনাকে আপনার হোস্টিং কন্ট্রোল প্যানেলে যেতে হবে এবং ক্রোন জব সেট আপ করতে হবে। সিপ্যানেলে এটি অ্যাডভান্সড> ক্রোন জবসের অধীনে। প্রতি পাঁচ মিনিটে চালানোর জন্য তাদের সেট আপ করুন এবং এই আদেশটি ব্যবহার করুন:
php -f /home/username/public_html/cron.php
উপরের পাথটি সঠিক কিনা তা পরীক্ষা করুন এবং ফাইলটি ক্রোন.এফপি প্রকৃতপক্ষে আপনার ম্যাজেন্টো ইনস্টলেশনের মূলে রয়েছে (যদি আপনি স্রেফ আপগ্রেড করেছেন, এটি হওয়া উচিত)। সঠিক অ্যাকাউন্টে ব্যবহারকারীর নাম পরিবর্তন করুন।
এখন, আমি প্রাথমিকভাবে xtento.com এ বিকাশকারীদের পরামর্শ অনুসরণ করার ভুল করেছিলাম যারা উইজেট কমান্ড স্ট্রিং ব্যবহার করতে বলে: wget -O / dev / null -q http://www.YOURDOMAIN.com/PATH_TO_MAGENTO/cron। পিএইচপি
সমাধান -02: ক্রোন এড়িয়ে চলুন
লেনদেনমূলক ইমেলগুলি তাত্ক্ষণিকভাবে প্রেরণ করা হবে।
//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
Magento 1.9 এর সাথে সমস্ত ইমেল সারিবদ্ধ করা হবে এবং পরে ক্রনের মাধ্যমে প্রেরণ করা হবে।
আপনি আপনার লেনদেন ইমেল ক্রন মাধ্যমে পাঠানো হবে চান, আপনি থেকে ক্রন সেট করতে পারেন সিস্টেম > কনফিগারেশন > সিস্টেম ট্যাবের অধীনে ক্রন বা ক্রন তৈরি Cpanel এটি আপনার সরাসরি cron.sh বা cron.php জন্য root Magento ডিরেক্টরির মধ্যে অবস্থিত।
কেবলমাত্র "এসএমটিপি প্রো ইমেল" এক্সটেনশানটি ইনস্টল করুন: http://www.magentocommerce.com
আপনার কাস্টম এসএমটিপি বিবরণ পূরণ করুন এবং সম্পন্ন হয়েছে।
এটি বের করতে আমার পুরো দুটি দিন লেগেছিল। কোনও ক্রোন জবসের প্রয়োজন নেই, যদিও আপনি যদি ক্রোন চাকরির কাজ করতে চান এবং আপনি উপরের কাজটি করতে না চান তবে আপনি নিম্নলিখিতটি করতে পারেন:
পরে:
$isShellDisabled = (stripos(PHP_OS, ‘win’) === false) ? $isShellDisabled : true;
কোডের এই লাইনটি যুক্ত করুন:
$isShellDisabled = true;
সি প্যানেলে ক্রোন জবস বিভাগে
একটি ক্রোন জব তৈরি করুন যা প্রতি 15 মিনিটে নিম্নলিখিত কমান্ডটি চালায়:
php -f /home/USERNAME/public_html/domain.com/magento_folder/cron.php
ম্যাজেন্টো 1.9.1.0 এ, ম্যাজেন্টো একটি নতুন বৈশিষ্ট্য যুক্ত করেছে: তারা আদেশের ইমেল core_email_queue
প্রেরণের জন্য টেস্টে অর্ডার ইমেল সংরক্ষণ করে । আমাদের cron.php
সার্ভারটি সেট করতে হবে
cron.php
ফাইল সেট core_email_queue_send_all
ক্রন পরিকল্পনাতে টেবিলে। ক্রোন যখন ডেকে আনা "প্রেরণ" পদ্ধতি চালায় Mage_Core_Model_Email_Queue
। তারা মেলটি গ্রাহকের কাছে প্রেরণ করে।
সুতরাং উপরের ফিক্স মূল ফাইলের কোনও পরিবর্তন ছাড়াই কাজ করছে।
নীচের কমান্ড হিসাবে কেবল আপনার সার্ভারে ক্রোন সেটআপ করুন এবং তারপরে আপনি বিক্রয় মেলগুলি গ্রহণ করতে শুরু করবেন।
php -q /home/YOUR_USER_NAME/public_html/Path_to_cron.php
"*****" হিসাবে সাধারণ সেটিংস ব্যবহার করুন
আপনার সাথে YOUR_USER_NAME এবং Path_to_cron.php প্রতিস্থাপন করা দরকার।
N98-magerun ব্যবহার করে আমি কেবল নিম্নলিখিতটি চালাচ্ছি:
n98-magerun sys:cron:run core_email_queue_send_all
বা সময়মতো এটি চালিয়ে যেতে না চাইলে:
watch -n 10 n98-magerun sys:cron:run core_email_queue_send_all
এটি প্রতি 10 সেকেন্ডে সারিতে থাকা সমস্ত ইমেল পাঠায়।
যদি কেবলমাত্র আদেশের ইমেলটি প্রেরণ না করা হয় তবে এটি কারণ ম্যাগেন্টো কেবল অর্ডার ইমেলগুলি সারি করে এবং তাদের ব্যাচে পাঠানোর জন্য সেভ করে। আপনার যদি হার্টবিট ক্রোন সেটআপ না থাকে .. তবে তারা কখনই ম্যাজেন্টো সারিটি ছেড়ে যাবে না।
আপনি অন্যান্য ম্যাজেন্টো ইমেলগুলি বাইরে চলে যেতে দেখছেন কারণ সেগুলি সরাসরি ম্যাজেন্টো থেকে আপনার মেলার ডিমনকে দেওয়া হয়। হার্বিট ক্রোনটি চালা না হওয়া পর্যন্ত ম্যাজেন্টো সারিগুলি (অর্ডার ইমেলের মতো) এমনকি মেলার ডিমনকে হস্তান্তর করা হয় না।
তাদের বাইরে যেতে বাধ্য করতে ... http://yourmagentodomain.com/cron.php এ নেভিগেট করুন এবং প্রতি পাঁচ মিনিটে সেই পৃষ্ঠাটি সতেজ রাখুন এবং আপনি সারি অর্ডার ইমেলগুলি বেরিয়ে আসা শুরু করবেন। হার্টবিট ক্রোন আপনার জন্য এটি করার কথা। ওহ, এবং যখন আপনি সেই ক্রোন.এফপি ফাইলটিতে নেভিগেট করেন, পৃষ্ঠাটি ফাঁকা বলে মনে করা হচ্ছে তাই শঙ্কিত হবেন না ... এটি কাজ করবে।
জ্ঞানের ভিত্তিটিকে কাজ করার জন্য আমি অনুসরণ করেছি: http://www.magentocommerce.com
"ট্রানজেকশনাল ইমেলগুলির স্থানীয়করণ" অংশে, পূর্ববর্তী নির্দেশাবলী অনুসরণ করার পরে / en_UK এ অনুলিপি করার পরে অবশেষে তাদের ইমেলগুলি পেয়েছিল (পূর্বে পাঠানো হয়নি এমনগুলি সহ), গ্রাহকদের কাছে অর্ডার নিশ্চিতকরণ পৃষ্ঠাটি প্রদর্শিত না হওয়ায় আমাদেরও সমস্যা ছিল had সমাপ্তির। এটিও ঠিক করা হয়েছিল।
উদাহরণস্বরূপ en_GB লোকেলের জন্য আপনার কাছে অবস্থিত ফাইলগুলি অনুলিপি করতে হবে:
অ্যাপ্লিকেশন / লোকেল / en_US / টেমপ্লেট / ইমেইল
অবস্থান:
অ্যাপ্লিকেশন / লোকেল / en_GB / টেমপ্লেট / ইমেইল
যদি আপনার মেইল সিস্টেম (smtp, zend_mail) ঠিকঠাক কাজ করে; মেলকিউ অক্ষম করা আপনার সমস্যার সমাধান করতে পারে।
/app/code/core/Mage/Core/Model/Email/Template.php
407 লাইন পরিবর্তন করুন
if ($this->hasQueue() && $this->getQueue() instanceof Mage_Core_Model_Email_Queue) {
প্রতি
if (false /\*$this->hasQueue() && $this->getQueue() instanceof Mage_Core_Model_Email_Queue\*/) {
আপনার যদি এক্সটেনশন এসএমটিপিপ্রো থাকে তবে এটি অক্ষম করার চেষ্টা করুন। এবং আবার চেক করুন। সমস্ত ইমেল সূক্ষ্মভাবে কাজ করে এবং আপনাকে কেবল সঠিকভাবে কনফিগার করতে হবে।
আরও ভাল উপায় হ'ল আপনার অ্যাপ / কোড / কোর / ম্যাজ / কোর / মডেল / ইমেল / টেমপ্লেট / মাইলআর.পি.পি. এর একটি অনুলিপি তৈরি করা
আপনার স্থানীয় ফোল্ডার অ্যাপ্লিকেশন / কোড / স্থানীয় / Mage / কোর / মডেল / ইমেল / টেমপ্লেট / মাইলআরপিপি
তারপরে line 76 লাইনে এই লাইনটি মন্তব্য করুন
->setQueue($this->getQueue())
তারপরে আপনি হয়ে গেছেন। সাফল্য.পিএইচটিএমএল টেম্পলেটটি সংশোধন করার দরকার নেই। : ডি