Magento 2.3: Add Attachment with email (Magento 2.3 use zendframework 2)
I am working on a module in which I need to attach an attachment with sales email. However, Magento 2.3 use zendframework2 so email attachment is not the same as zendframework1 (in Magento 2.2).
Can anyone help me to achieve the same task? How to implement attachment functions in Magento 2.3
I have searched in google and read several questions but I didn't find the solution.
email sales-order pdf magento2.3 attachment
add a comment |
I am working on a module in which I need to attach an attachment with sales email. However, Magento 2.3 use zendframework2 so email attachment is not the same as zendframework1 (in Magento 2.2).
Can anyone help me to achieve the same task? How to implement attachment functions in Magento 2.3
I have searched in google and read several questions but I didn't find the solution.
email sales-order pdf magento2.3 attachment
Possible duplicate of Magento 2: send email with Attachment
– Mohit Kumar Arora
yesterday
No..Magento 2.3 email attachment are different from lower versions @MohitKumarArora
– Sameer Bhayani
yesterday
add a comment |
I am working on a module in which I need to attach an attachment with sales email. However, Magento 2.3 use zendframework2 so email attachment is not the same as zendframework1 (in Magento 2.2).
Can anyone help me to achieve the same task? How to implement attachment functions in Magento 2.3
I have searched in google and read several questions but I didn't find the solution.
email sales-order pdf magento2.3 attachment
I am working on a module in which I need to attach an attachment with sales email. However, Magento 2.3 use zendframework2 so email attachment is not the same as zendframework1 (in Magento 2.2).
Can anyone help me to achieve the same task? How to implement attachment functions in Magento 2.3
I have searched in google and read several questions but I didn't find the solution.
email sales-order pdf magento2.3 attachment
email sales-order pdf magento2.3 attachment
edited yesterday
Sameer Bhayani
asked yesterday
Sameer BhayaniSameer Bhayani
708417
708417
Possible duplicate of Magento 2: send email with Attachment
– Mohit Kumar Arora
yesterday
No..Magento 2.3 email attachment are different from lower versions @MohitKumarArora
– Sameer Bhayani
yesterday
add a comment |
Possible duplicate of Magento 2: send email with Attachment
– Mohit Kumar Arora
yesterday
No..Magento 2.3 email attachment are different from lower versions @MohitKumarArora
– Sameer Bhayani
yesterday
Possible duplicate of Magento 2: send email with Attachment
– Mohit Kumar Arora
yesterday
Possible duplicate of Magento 2: send email with Attachment
– Mohit Kumar Arora
yesterday
No..Magento 2.3 email attachment are different from lower versions @MohitKumarArora
– Sameer Bhayani
yesterday
No..Magento 2.3 email attachment are different from lower versions @MohitKumarArora
– Sameer Bhayani
yesterday
add a comment |
1 Answer
1
active
oldest
votes
I had the same issue.
To solve this i created a helper.
use MagentoFrameworkObjectManagerInterface;
use MagentoFrameworkMailMessageInterface;
use MagentoFrameworkMailTemplateFactoryInterface;
use MagentoFrameworkMailTemplateSenderResolverInterface;
use MagentoFrameworkMailTransportInterfaceFactory;
use MagentoFrameworkMailTemplateTransportBuilder;
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(
$body,
$filename = null,
$mimeType = Zend_Mime::TYPE_OCTETSTREAM,
$disposition = Zend_Mime::DISPOSITION_ATTACHMENT,
$encoding = Zend_Mime::ENCODING_BASE64
)
{
$this->message->createAttachment($body, $mimeType, $disposition, $encoding, $filename);
return $this;
}
}
Then I loaded this on my controller.
use BVZWishlistHelperUploadTransportBuilder;
UploadTransportBuilder $transportBuilder
$this->_transportBuilder = $transportBuilder
$transport = $this->_transportBuilder->setTemplateIdentifier('bvz_customer_wishlist')
->setTemplateOptions(['area' => 'frontend', 'store' => $store])
->setTemplateVars(['data' => $postObject])
->setFrom('support')
->addTo($formEmail, $customerName)
->attachFile($pdf,'Seleção de Produtos.pdf')
->getTransport();
$this->messageManager->addSuccess(__('Um e-mail foi enviado com sua lista de desejo.'));
$transport->sendMessage();
The code method for attach a file is attachFile();
Thank you @Gabriel Fernandes I will try this. Is it working in magento 2.3 ?
– Sameer Bhayani
yesterday
i'm using 2.2.3, maybe works on 2.3
– Gabriel Fernandes
yesterday
Thanks @Gabriel. Magento 2.3 using zendframework2 & zendframework had deleted createAttachment() function so it is not working in 2.3 however older magento 2 version use zendframework1 so It is working in those versions error: prnt.sc/m4gr1e
– Sameer Bhayani
yesterday
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "479"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f257117%2fmagento-2-3-add-attachment-with-email-magento-2-3-use-zendframework-2%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I had the same issue.
To solve this i created a helper.
use MagentoFrameworkObjectManagerInterface;
use MagentoFrameworkMailMessageInterface;
use MagentoFrameworkMailTemplateFactoryInterface;
use MagentoFrameworkMailTemplateSenderResolverInterface;
use MagentoFrameworkMailTransportInterfaceFactory;
use MagentoFrameworkMailTemplateTransportBuilder;
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(
$body,
$filename = null,
$mimeType = Zend_Mime::TYPE_OCTETSTREAM,
$disposition = Zend_Mime::DISPOSITION_ATTACHMENT,
$encoding = Zend_Mime::ENCODING_BASE64
)
{
$this->message->createAttachment($body, $mimeType, $disposition, $encoding, $filename);
return $this;
}
}
Then I loaded this on my controller.
use BVZWishlistHelperUploadTransportBuilder;
UploadTransportBuilder $transportBuilder
$this->_transportBuilder = $transportBuilder
$transport = $this->_transportBuilder->setTemplateIdentifier('bvz_customer_wishlist')
->setTemplateOptions(['area' => 'frontend', 'store' => $store])
->setTemplateVars(['data' => $postObject])
->setFrom('support')
->addTo($formEmail, $customerName)
->attachFile($pdf,'Seleção de Produtos.pdf')
->getTransport();
$this->messageManager->addSuccess(__('Um e-mail foi enviado com sua lista de desejo.'));
$transport->sendMessage();
The code method for attach a file is attachFile();
Thank you @Gabriel Fernandes I will try this. Is it working in magento 2.3 ?
– Sameer Bhayani
yesterday
i'm using 2.2.3, maybe works on 2.3
– Gabriel Fernandes
yesterday
Thanks @Gabriel. Magento 2.3 using zendframework2 & zendframework had deleted createAttachment() function so it is not working in 2.3 however older magento 2 version use zendframework1 so It is working in those versions error: prnt.sc/m4gr1e
– Sameer Bhayani
yesterday
add a comment |
I had the same issue.
To solve this i created a helper.
use MagentoFrameworkObjectManagerInterface;
use MagentoFrameworkMailMessageInterface;
use MagentoFrameworkMailTemplateFactoryInterface;
use MagentoFrameworkMailTemplateSenderResolverInterface;
use MagentoFrameworkMailTransportInterfaceFactory;
use MagentoFrameworkMailTemplateTransportBuilder;
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(
$body,
$filename = null,
$mimeType = Zend_Mime::TYPE_OCTETSTREAM,
$disposition = Zend_Mime::DISPOSITION_ATTACHMENT,
$encoding = Zend_Mime::ENCODING_BASE64
)
{
$this->message->createAttachment($body, $mimeType, $disposition, $encoding, $filename);
return $this;
}
}
Then I loaded this on my controller.
use BVZWishlistHelperUploadTransportBuilder;
UploadTransportBuilder $transportBuilder
$this->_transportBuilder = $transportBuilder
$transport = $this->_transportBuilder->setTemplateIdentifier('bvz_customer_wishlist')
->setTemplateOptions(['area' => 'frontend', 'store' => $store])
->setTemplateVars(['data' => $postObject])
->setFrom('support')
->addTo($formEmail, $customerName)
->attachFile($pdf,'Seleção de Produtos.pdf')
->getTransport();
$this->messageManager->addSuccess(__('Um e-mail foi enviado com sua lista de desejo.'));
$transport->sendMessage();
The code method for attach a file is attachFile();
Thank you @Gabriel Fernandes I will try this. Is it working in magento 2.3 ?
– Sameer Bhayani
yesterday
i'm using 2.2.3, maybe works on 2.3
– Gabriel Fernandes
yesterday
Thanks @Gabriel. Magento 2.3 using zendframework2 & zendframework had deleted createAttachment() function so it is not working in 2.3 however older magento 2 version use zendframework1 so It is working in those versions error: prnt.sc/m4gr1e
– Sameer Bhayani
yesterday
add a comment |
I had the same issue.
To solve this i created a helper.
use MagentoFrameworkObjectManagerInterface;
use MagentoFrameworkMailMessageInterface;
use MagentoFrameworkMailTemplateFactoryInterface;
use MagentoFrameworkMailTemplateSenderResolverInterface;
use MagentoFrameworkMailTransportInterfaceFactory;
use MagentoFrameworkMailTemplateTransportBuilder;
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(
$body,
$filename = null,
$mimeType = Zend_Mime::TYPE_OCTETSTREAM,
$disposition = Zend_Mime::DISPOSITION_ATTACHMENT,
$encoding = Zend_Mime::ENCODING_BASE64
)
{
$this->message->createAttachment($body, $mimeType, $disposition, $encoding, $filename);
return $this;
}
}
Then I loaded this on my controller.
use BVZWishlistHelperUploadTransportBuilder;
UploadTransportBuilder $transportBuilder
$this->_transportBuilder = $transportBuilder
$transport = $this->_transportBuilder->setTemplateIdentifier('bvz_customer_wishlist')
->setTemplateOptions(['area' => 'frontend', 'store' => $store])
->setTemplateVars(['data' => $postObject])
->setFrom('support')
->addTo($formEmail, $customerName)
->attachFile($pdf,'Seleção de Produtos.pdf')
->getTransport();
$this->messageManager->addSuccess(__('Um e-mail foi enviado com sua lista de desejo.'));
$transport->sendMessage();
The code method for attach a file is attachFile();
I had the same issue.
To solve this i created a helper.
use MagentoFrameworkObjectManagerInterface;
use MagentoFrameworkMailMessageInterface;
use MagentoFrameworkMailTemplateFactoryInterface;
use MagentoFrameworkMailTemplateSenderResolverInterface;
use MagentoFrameworkMailTransportInterfaceFactory;
use MagentoFrameworkMailTemplateTransportBuilder;
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(
$body,
$filename = null,
$mimeType = Zend_Mime::TYPE_OCTETSTREAM,
$disposition = Zend_Mime::DISPOSITION_ATTACHMENT,
$encoding = Zend_Mime::ENCODING_BASE64
)
{
$this->message->createAttachment($body, $mimeType, $disposition, $encoding, $filename);
return $this;
}
}
Then I loaded this on my controller.
use BVZWishlistHelperUploadTransportBuilder;
UploadTransportBuilder $transportBuilder
$this->_transportBuilder = $transportBuilder
$transport = $this->_transportBuilder->setTemplateIdentifier('bvz_customer_wishlist')
->setTemplateOptions(['area' => 'frontend', 'store' => $store])
->setTemplateVars(['data' => $postObject])
->setFrom('support')
->addTo($formEmail, $customerName)
->attachFile($pdf,'Seleção de Produtos.pdf')
->getTransport();
$this->messageManager->addSuccess(__('Um e-mail foi enviado com sua lista de desejo.'));
$transport->sendMessage();
The code method for attach a file is attachFile();
answered yesterday
Gabriel FernandesGabriel Fernandes
52
52
Thank you @Gabriel Fernandes I will try this. Is it working in magento 2.3 ?
– Sameer Bhayani
yesterday
i'm using 2.2.3, maybe works on 2.3
– Gabriel Fernandes
yesterday
Thanks @Gabriel. Magento 2.3 using zendframework2 & zendframework had deleted createAttachment() function so it is not working in 2.3 however older magento 2 version use zendframework1 so It is working in those versions error: prnt.sc/m4gr1e
– Sameer Bhayani
yesterday
add a comment |
Thank you @Gabriel Fernandes I will try this. Is it working in magento 2.3 ?
– Sameer Bhayani
yesterday
i'm using 2.2.3, maybe works on 2.3
– Gabriel Fernandes
yesterday
Thanks @Gabriel. Magento 2.3 using zendframework2 & zendframework had deleted createAttachment() function so it is not working in 2.3 however older magento 2 version use zendframework1 so It is working in those versions error: prnt.sc/m4gr1e
– Sameer Bhayani
yesterday
Thank you @Gabriel Fernandes I will try this. Is it working in magento 2.3 ?
– Sameer Bhayani
yesterday
Thank you @Gabriel Fernandes I will try this. Is it working in magento 2.3 ?
– Sameer Bhayani
yesterday
i'm using 2.2.3, maybe works on 2.3
– Gabriel Fernandes
yesterday
i'm using 2.2.3, maybe works on 2.3
– Gabriel Fernandes
yesterday
Thanks @Gabriel. Magento 2.3 using zendframework2 & zendframework had deleted createAttachment() function so it is not working in 2.3 however older magento 2 version use zendframework1 so It is working in those versions error: prnt.sc/m4gr1e
– Sameer Bhayani
yesterday
Thanks @Gabriel. Magento 2.3 using zendframework2 & zendframework had deleted createAttachment() function so it is not working in 2.3 however older magento 2 version use zendframework1 so It is working in those versions error: prnt.sc/m4gr1e
– Sameer Bhayani
yesterday
add a comment |
Thanks for contributing an answer to Magento Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f257117%2fmagento-2-3-add-attachment-with-email-magento-2-3-use-zendframework-2%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Possible duplicate of Magento 2: send email with Attachment
– Mohit Kumar Arora
yesterday
No..Magento 2.3 email attachment are different from lower versions @MohitKumarArora
– Sameer Bhayani
yesterday