【问题标题】:Why is the email is not send in this code? Magento为什么电子邮件未在此代码中发送? Magento
【发布时间】:2018-04-29 18:27:06
【问题描述】:

当用户填写表单并单击提交时,我正在尝试为用户发送电子邮件。我在 Magento 中创建了一个控制器并包含以下代码

public function sendMailAction(){
    $html="put your html content hereblah blah";
    $mail = Mage::getModel('core/email');
    $mail->setToName('Your Name');
    $mail->setToEmail('sadeeenadeee@gmail.com');
    $mail->setBody('Mail Text / Mail Content');
    $mail->setSubject('Mail Subject');
    $mail->setFromEmail('Sender Mail Id');
    $mail->setFromName("Msg to Show on Subject");
    $mail->setType('html');// YOu can use Html or text as Mail format

    try {
        $mail->send();
        Mage::getSingleton('core/session')->addSuccess('Your request has been sent');
        $this->_redirect('');
    }
    catch (Exception $e) {
        Mage::getSingleton('core/session')->addError('Unable to send.');
        $this->_redirect('');
    }
    }

这是我计划用来发送电子邮件的函数。为单击提交按钮调用上述控制器函数。 然后我在 Magento 管理面板中配置了外发 SMTP 电子邮件。

系统>配置->邮件发送设置

我按照上面的路径,在邮件发送设置中添加了HOSTPORT并保存了config。HOST和PORT是从邮件服务商那里获取的。但是当用户填写表单并单击提交时,而不是发送电子邮件,浏览器会尝试启动应用程序,

此链接需要通过应用程序打开

有人可以帮帮我吗? 我在托管网站上工作

【问题讨论】:

    标签: php magento magento-1.9 magento2 magento-1.8


    【解决方案1】:
    $emailTemplateVariables = array();
    $EmailSenderName="Email Sender Name";
    $EmailId="semder Email";
                $emailTemplateVariables['key1'] = "data1";
                $emailTemplateVariables['key2'] = "data2";
    
    
                /* sent mail to //recepient  */
                $recipientEmail="abcd@xyz.com";
    
                $sender = Array('name' => $EmailSenderName,
                'email' => $EmailId);
                $emailName = 'Email Name';
                $translate = Mage::getSingleton('core/translate');
                $emailTemplate  = Mage::getModel('core/email_template')
                            ->loadDefault('Any_email_template');
    
                    $emailTemplate->setSenderName($EmailSenderName)
                    ->setSenderEmail($EmailId)
                    ->setTemplateSubject($emailName);
                    $emailstatus=$emailTemplate->send($recipientEmail, $emailName, $emailTemplateVariables);
    
    
    
                $translate->setTranslateInline(true);
                if($emailstatus) {
    //email send successfully
    
                }
                else {
    
                //something went wrong
                }
    

    请确认que中的所有邮件都输入了终端命令 邮件q

     $emailTemplate  = Mage::getModel('core/email_template')->load(1);   //1 is Transactional Emails id
    

    如果你想试试上面的默认

    【讨论】:

    • 谢谢,我想了几天,发现电子邮件在队列中。这就是它们没有送达的原因。我认为这是我托管服务器中的一个错误。这个链接需要打开一个应用程序消息是由于打开了我在 js 中用于测试的警报窗口。我忘了它。非常感谢。现在它正在工作
    • 但我还有一个问题。如何解决这封电子邮件进入队列问题。有什么解决方案吗?
    • 您是否使用任何第三方电子邮件扩展程序...?
    • 请参考blog
    猜你喜欢
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 2013-07-22
    • 2014-01-01
    • 2016-01-23
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    相关资源
    最近更新 更多