首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何安排邮件控制器和env文件?

如何安排邮件控制器和env文件?
EN

Stack Overflow用户
提问于 2022-05-31 06:50:59
回答 2查看 81关注 0票数 0

我有一张表格,我的网站访问者可以在这里输入姓名、电子邮件地址和信息,我已经在env文件中提供了我的gmail帐户凭证。

代码语言:javascript
代码运行次数:0
运行
复制
//here is the ENV File Configuration

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=abc@gmail.com
MAIL_PASSWORD=bcccc124444
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=abc@gmail.com
MAIL_FROM_NAME="${APP_NAME}"

下面是phpmailer代码

代码语言:javascript
代码运行次数:0
运行
复制
public function sendmail($email,$name,$message) {


       //dd($email,$name,$message);
        require base_path("vendor/autoload.php");
        $mail = new PHPMailer(true);     // Passing `true` enables exceptions

        try {
 $mail->SMTPDebug =0;
        $mail->isSMTP();
        $mail->Host = 'smtp.gmail.com';             //  smtp host
        $mail->SMTPAuth = true;
        $mail->Username = 'abc@gmail.com';
        $mail->Password ='mypassword';
        $mail->SMTPSecure = 'tls';                  
        $mail->Port =587;                        
        $mail->setFrom($email,$name);
        $mail->addAddress('receivemail@gmail.com');
        $mail->isHTML(true);  
        $mail->Subject = 'WebQuery';
        $mail->Body =$message;
if( !$mail->send() ) {
               dd('not send');
                return back()->with("failed", "Email not sent.")->withErrors($mail->ErrorInfo);
            }
            
            else {
                dd('send');
                return back()->with("success", "Email has been sent.");
            }

        } catch (Exception $e) {
            dd($e);
             return back()->with('error','Message could not be sent.');
        }
    }

为什么我总是收到来自abc@gmail.com的电子邮件,为什么不是来自电子邮件,哪些访问者输入了形式,如何自定义电子邮件功能和env在拉拉8

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-05-31 07:43:56

这是因为你伪造的地址。别干那事。这不仅是个坏主意,而且几个大型的电子邮件提供商(包括gmail)阻止了你这么做,并且会代替你的帐户名。从您自己的地址发送这样的消息,并在回复头中提供提交者的地址。这样,收件人就可以点击“回复”,让一条消息到达正确的地方,而不必伪造任何东西。

这也是PHPMailer实例向您展示的方法。

第二个问题是,这个函数在第二次调用时会崩溃,因为您有无条件的autoload.php负载,这将导致致命错误。在Laravel应用程序中,您不需要自己加载该自动加载程序,该应用程序将为您处理它。

票数 0
EN

Stack Overflow用户

发布于 2022-05-31 07:04:30

Laravel使用默认的MAIL_FROM_ADDRESS,除非您为邮件覆盖它。如果您使用某种notification或普通mail,则可以在处理邮件创建过程中设置from字段。

为了提供更多的信息,您必须在生成邮件的地方显示代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72443330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档