How can i send transactional mail with csv/excel attachment in magento 2? below is my code:
use Magento\Framework\ObjectManagerInterface;
use Magento\Framework\Mail\Template\FactoryInterface;
use Magento\Framework\Mail\Template\SenderResolverInterface;
use Magento\Framework\Mail\Template\TransportBuilder;
class UploadTransportBuilder extends TransportBuilder {
public function __construct(FactoryInterface $templateFactory,
MessageInterface $message,
SenderResolverInterface $senderResolver,
ObjectManagerInterface $objectManager,
TransportInterfaceFactory $mailTransportFactory) {
parent::__construct($templateFactory,
$message,
$senderResolver,
$objectManager,
$mailTransportFactory); }
public function attachFile($file, $name) {
if (!empty($file) && file_exists($file)) {
$this->message
->createAttachment(
file_get_contents($file),
\Zend_Mime::TYPE_OCTETSTREAM,
\Zend_Mime::DISPOSITION_ATTACHMENT,
\Zend_Mime::ENCODING_BASE64,
basename($name));
return true; }
return false;
}
}
and i send mail with attachment
$transportBuilder = $this->_objectManager->create('\Magento\Framework\Mail\Template\UploadTransportBuilder');
$path='D:\asd.csv';
//end here
$templateId=1;
$storeId=1;
$templateParams['test']='test test';
$transport =$transportBuilder->setTemplateIdentifier($templateId)
->setTemplateOptions(['area' => 'frontend', 'store' => $storeId])
->setTemplateVars($templateParams)
->setFrom(array('email'=>'[email protected]', 'name'=>'anand'))
->addTo('[email protected]','anand.ontigeri')
->getTransport();
$transport->attachFile($path,'asd');
$transport->sendMessage();
Fatal error: Call to undefined method Magento\Framework\Mail\Transport\Interceptor::attachFile() in /var/www/magento2/html/magento2ee/script/Email.php on line 34
seb
3,5723 gold badges26 silver badges57 bronze badges
asked Feb 23, 2016 at 12:56
Anand Ontigeri
9092 gold badges10 silver badges26 bronze badges
-
Hi I am also facing same issue ,If you got the solution so can you please share with me. Thanks a lotkonika– konika2016年07月22日 06:40:10 +00:00Commented Jul 22, 2016 at 6:40
1 Answer 1
Replace
$transport =$transportBuilder->setTemplateIdentifier($templateId)
->setTemplateOptions(['area' => 'frontend', 'store' => $storeId])
->setTemplateVars($templateParams)
->setFrom(array('email'=>'[email protected]', 'name'=>'anand'))
->addTo('[email protected]','anand.ontigeri')
->getTransport();
$transport->attachFile($path,'asd');
$transport->sendMessage();
with
$transport =$transportBuilder->setTemplateIdentifier($templateId)
->setTemplateOptions(['area' => 'frontend', 'store' => $storeId])
->setTemplateVars($templateParams)
->setFrom(array('email'=>'[email protected]', 'name'=>'anand'))
->addTo('[email protected]','anand.ontigeri')
->attachFile($path,'asd') //Add attachFile here
->getTransport();
$transport->sendMessage();
answered Jul 22, 2016 at 13:23
konika
5792 gold badges7 silver badges23 bronze badges
default