ম্যাজেন্টো 2: প্রোগ্রামিয়ালি ইমেল প্রেরণ


24

অ্যামাজন এসইএস, ম্যান্ড্রিল ইত্যাদির মতো তৃতীয় পক্ষের লেনদেন ইমেল বিতরণযোগ্যতা সিস্টেমগুলির সাথে ম্যাজেন্টো 2 এর কোনও বিল্ট-ইন ইন্টিগ্রেশন রয়েছে বা পিএইচপি এর mailফাংশনটির আশেপাশে বিল্ট-ইন ইমেল কার্যকারিতা এখনও রয়েছে ? নাকি কোনও তৃতীয় জিনিস সহ ইমেলগুলি প্রেরণ করা হচ্ছে?

যদি উত্তরটি হয় mail, ম্যাগেন্টো 2 এর জন্য এসএমটিপিপ্রোর মতো কোনও তৃতীয় পক্ষের এক্সটেনশন রয়েছে যা কোনও বিকাশকারীকে স্ট্যান্ডার্ড ইমেল সিস্টেমটি প্রতিস্থাপন করতে দেয়?

উত্তর:


13

'ইমেল', 'বার্তা' ইত্যাদির মতো স্ট্রিংয়ের জন্য আমি ম্যাজেন্টো 2 কোডবেজে প্রায় অনুসন্ধান শুরু করেছি যতক্ষণ না আমি কোনও ইমেল প্রেরণকারী কিছু খুঁজে পেয়েছি। আমি প্রেরিতপেইমেন্টফেইডএমেইল () এ হোঁচট খেয়েছি vendor/magento/module-checkout/Helper/Data.php। এটি প্রচুর ভেরিয়েবল সেট করে তবে শেষ পর্যন্ত এগুলি ট্রান্সপোর্ট আইটেমের সাথে সংযুক্ত করে, যা একটি 'ট্রান্সপোর্টবিল্ডার' এর মাধ্যমে তৈরি করা হয়। এই ট্রান্সপোর্টবিল্ডার একটি উদাহরণ \Magento\Framework\Mail\Template\TransportBuilder

এই ফাইলটিতে একটি $transportচলক বিদ্যমান, যা এর উদাহরণ \Magento\Framework\Mail\TransportInterface। কারণ একটি ইন্টারফেস রয়েছে, নিয়মিত ক্লাসও বলা হয় \Magento\Framework\Mail\Transport। আমরা যখন ফাইলটি খুলি vendor/magento/framework/Mail/Transport.php, আমরা দেখতে পাই এটি জেন্ড_মেল_টান্সপোর্টসপেন্ডেল প্রসারিত করে;

শ্রেণি পরিবহন প্রসারিত হয় \ জেনড_মেল_ট্যান্সপোর্টস্যান্ডমেল প্রয়োগসমূহ \ ম্যাজেন্টো \ ফ্রেমওয়ার্ক \ মেল \ ট্রান্সপোর্টইন্টারফেস

এটিই আপনি খুঁজছেন। ডিআই ব্যবহার করে আপনি এই পরিবহণটিকে জেন্ড_মেলের পরিবর্তে ম্যান্ড্রিল বা অ্যামাজন এসইএসের পরিবর্তে অন্য ইমেল কাঠামোর সাথে প্রতিস্থাপন করতে সক্ষম হবেন।

কেবল send()পদ্ধতিটি অন্তর্ভুক্ত করার বিষয়ে নিশ্চিত হন যেহেতু সেই পদ্ধতিটি বলা হয় sendMessage();

public function sendMessage()
{
    try {
        parent::send($this->_message);
    } catch (\Exception $e) {
        throw new \Magento\Framework\Exception\MailException(new \Magento\Framework\Phrase($e->getMessage()), $e);
    }
}

12

ম্যাজেন্টো 2 TransportBuilderইমেলের বডি রচনা করতে একটি ইমেল টেম্পলেট ব্যবহার করে। আমি সরল পাঠ্য প্রেরণের সর্বাধিক সহজ উপায় - ব্যবহার Zend_Mail(যা নিজেই ম্যাজেন্টো 2 দ্বারা ব্যবহৃত হয়):

$email = new \Zend_Mail();
$email->setSubject("Feedback email");
$email->setBodyText($body);
$email->setFrom($from, $nameFrom);
$email->addTo($to, $nameTo);
$email->send();

3
আপনি যদি এইচটিএমএল আকারে দেহটি প্রেরণ করতে চান তবে আপনি ব্যবহার করতে পারেন$email->setBodyHtml($body)
আনিশ করিম

এই মহান, কিন্তু, যদি আপনি Google এর মতো কিছু মাধ্যমে SMTP ব্যবহার করছেন তাহলে এই থ্রেড অনুসরণ stackoverflow.com/questions/3455674/...
Ahdee

আমি ম্যাজেন্টোতে এটি চেষ্টা করেছি কিন্তু একটি ত্রুটি পেয়েছি মারাত্মক ত্রুটি: মারাত্মক ত্রুটি: আনকড ত্রুটি: শ্রেণি 'জেন্ড_মেল' /srv/public_html/pub/test.php এ পাওয়া যায় নি
নাগারাজু কে

@ নাগারাজুক, আপনি কি সুরকারের অটোলোডারটিকে নিজের মধ্যে অন্তর্ভুক্ত করেছিলেন /srv/public_html/pub/test.php?
অ্যালেক্স গুসেভ

কোনও @AlexGusev আপনি কীভাবে আমার টেস্ট.এফপি ফাইলটিতে সুরকারের অটোলোডার যুক্ত করবেন সে সম্পর্কে আপনি আমাকে গাইড করতে পারবেন না?
নাগারাজু কে

8

mail()পুরানো এবং কোনও 3 তম সমর্থন না করে পিএইচপিগুলি সম্পর্কে প্রায়শই তৈরি অনুমান রয়েছে । পার্টি পরিষেবা।
এটি আসলে ভাল, প্রতিটি ভাল 3 তম হিসাবে। পার্টি পরিষেবা একটি এসএমটিপি ইন্টারফেস সমর্থন করে এবং mail()এটিও করে।

আমাজন এসইএস এসএমটিপি সমর্থন করে।

এবং এসএমটিপি দিয়ে প্রেরণের mail()এই উত্তরে বর্ণিত হয়েছে: /programming//a/14457410/716029


1
দরকারী তথ্যের জন্য +1 - তবে আমি এখনও এইচটিটিপি পরিষেবাদির মাধ্যমে বিভিন্ন ইমেল সমর্থন করার জন্য ম্যাজেন্টো যে বিমূর্ততা আছে তা সম্পর্কে আগ্রহী।
অ্যালান ঝড়

দুর্ভাগ্যক্রমে জেন্ড_মেল ছাড়া কোনও নির্দিষ্ট বাস্তবায়ন নেই।
পিটার জাপ ব্লেক্মির

-1

কাস্টম ইমেল প্রেরণের জন্য ম্যাজেন্টো 2 ব্যবহার \ ম্যাজেন্টো \ ফ্রেমওয়ার্ক \ মেল \ টেমপ্লেট \ ট্রান্সপোর্টবিল্ডার শ্রেণি।

আপনার লেনদেন মেল টেমপ্লেটগুলি সংজ্ঞায়িত করার জন্য আপনাকে একটি সাধারণ মডিউল তৈরি করতে হবে এবং ইমেল_টেম্পলেটস.এমএমএল ফাইল সেট করতে হবে।

আপনি অ্যাডমিনটিচটিএমএল বা ফ্রন্টএন্ড স্কোপ অঞ্চল থেকে মেল পাঠাতে পারেন।

আমি মডিউলটি ব্যবহার করে ম্যাজেন্টো 2 থেকে কাস্টম মেইল ​​প্রেরণের জন্য ধাপে ধাপে গাইডের জন্য একটি লিঙ্ক ভাগ করেছি।

ম্যাজেন্টো 2 মডিউল থেকে কাস্টম মেইল ​​প্রেরণ করুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.