Answers:
如果您已经正确配置了Magento 2邮件系统,则可能需要检查以下几点:
Stores -> Configuration -> Advanced -> System
在“ 邮件发送设置”下,确保Disable Email Communications
将其设置为No
。如果您正在使用任何外部邮件服务器,还请验证您的Host
和Port
字段。
Stores -> Configuration -> Sales -> Sales Emails
在常规设置选项卡中,选择Asynchronous sending
到Disable
在Order
标签Enabled
下Yes
现在清除/刷新缓存。
希望这对您有所帮助。该解决方案已通过Magento 2.1.0进行了测试
这将起作用。
transportbuilderbystore类已在2.3中弃用,不久将在2.2中使用。
在Magento 2.2.7中修复。
修复:供应商/ magento /模块销售/模型/订单/电子邮件/SenderBuilder.php
更换
$this->transportBuilderByStore->setFromByStore(
$this->identityContainer->getEmailIdentity(),
$this->identityContainer->getStore()->getId()
);
与
$this->transportBuilder->setFrom(
$this->identityContainer->getEmailIdentity(),
$this->identityContainer->getStore()->getId()
);
供应商/ magento /框架/邮件/模板/TransportBuilder.php
更换
/**
* Set mail from address
*
* @param string|array $from
* @return $this
*/
public function setFrom($from)
{
$result = $this->_senderResolver->resolve($from);
$this->message->setFrom($result['email'], $result['name']);
return $this;
}
与
/**
* Set mail from address
*
* @param string|array $from
* @return $this
*/
public function setFrom($from, $store = null)
{
$result = $this->_senderResolver->resolve($from, $store);
$this->message->setFrom($result['email'], $result['name']);
return $this;
}
就像这样,我们不再需要TransportBuilderByStore,它可以按预期工作。
我遇到了同样的问题,发现实际问题是由于“ from”头引起的。由于某种原因两次被设置。请更新以下文件以解决此问题:
供应商\ magento \框架\邮件\模板\ TransportBuilderByStore
public function setFromByStore($from, $store)
{
$result = $this->senderResolver->resolve($from, $store);
$this->message->setFrom($result['email'], $result['name']);
return $this;
}
至
public function setFromByStore($from, $store)
{
$result = $this->senderResolver->resolve($from, $store);
if ($this->message->getFrom()) {
$this->message->clearFrom();
}
$this->message->setFrom($result['email'], $result['name']);
return $this;
}