Preference Conflict with VladimirPopov WebForms
There is currently a preference conflict between Email Attachments and the VladimirPopov\WebForms extension.
If you are getting an error message like this when sending an email with attachment:
[13-Sep-2017 09:49:57 UTC] PHP Fatal error: Uncaught TypeError: Argument 1 passed to VladimirPopov\WebForms\Model\Mail\TransportBuilder::addAttachment() must be an instance of VladimirPopov\WebForms\Model\Api\AttachmentInterface, instance of Fooman\EmailAttachments\Model\Attachment given, called in /var/www/vendor/fooman/emailattachments-m2/src/Model/SenderBuilder.php on line 51 and defined in /var/www/vendor/vladimirpopov/webforms2/Model/Mail/TransportBuilder.php:15 Stack trace: #0 /var/www/vendor/fooman/emailattachments-m2/src/Model/SenderBuilder.php(51): VladimirPopov\WebForms\Model\Mail\TransportBuilder->addAttachment(Object(Fooman\EmailAttachments\Model\Attachment)) #1 /var/www/vendor/magento/module-sales/Model/Order/Email/Sender.php(77): Fooman\EmailAttachments\Model\SenderBuilder->send() #2 /var/www/vendor/magento/module-sal in /var/www/vendor/vladimirpopov/webforms2/Model/Mail/TransportBuilder.php on line 15
then in vendor/vladimirpopov/webforms2/Model/Mail/TransportBuilder.php change
public function addAttachment(Api\AttachmentInterface $attachment)to
public function addAttachment(\Fooman\EmailAttachments\Model\Api\AttachmentInterface $attachment)
If it complains about the method addAttachment missing you can edit vendor/vladimirpopov/webforms2/Model/Mail/TransportBuilder.php to include the below
class TransportBuilder extends \Magento\Framework\Mail\Template\TransportBuilder
{
/**
* @param \Fooman\EmailAttachments\Model\Api\AttachmentInterface $attachment
*/
public function addAttachment(\Fooman\EmailAttachments\Model\Api\AttachmentInterface $attachment)
{
$this->message->createAttachment(
$attachment->getContent(),
$attachment->getMimeType(),
$attachment->getDisposition(),
$attachment->getEncoding(),
$this->encodedFileName($attachment->getFilename())
);
}