【问题标题】:Laravel:sending mail from live serverLaravel:从实时服务器发送邮件
【发布时间】:2017-05-31 06:38:37
【问题描述】:

我一切正常..在 localhost 中工作..邮件从 localhost 发送...但是当我将其上传到服务器时,邮件没有发送,也没有抛出异常...这是我的 . env文件代码

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=mygmail@gmail.com
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=tls 

这是我的控制器代码

protected function create(array $data)
{
    //dd($data);


    $models = new User;
    $user=User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => bcrypt($data['password']),
        /*'usertype' =>$data['usertype'],*/
        'status' => 0,

    ]);

    $use = array('name' => 'Admin');
    //$models->emailw = Auth::user()->email;
    $message_id = "";
    $name = "";
 Mail::send('emailMessage', $use, function ($m) use ($message_id,$name){

      $message_id = DB::getPdo()->lastInsertId();

       $name = DB::table('users')->select('name')->where('id','=',    $message_id)->pluck('name');   

       //$email = DB::table('users')->select('email')->where('id','=', $message_id)->pluck('email');
       $subject = "Id = ". $message_id . " name = " .$name[0]; 

      $m->to('mrbbangladesh2017@gmail.com')
        ->subject($subject);
  });
 return $user;

}

这是我的 mail.php 代码

<?php

return [
        'driver' => env('MAIL_DRIVER', 'smtp'),
        'host' => 'smtp.gmail.com',
        'port' =>  587,
        'from' => [
                   'address' => 'admin@mrbglobalbd.com',
                   'name' => 'Admin',
                  ],  

        'encryption' => env('MAIL_ENCRYPTION', 'tls'),
        'username' => env('MAIL_USERNAME'),
        'password' => env('MAIL_PASSWORD'),
        'sendmail' => '/usr/sbin/sendmail -bs',

        ];

我需要在这里改变什么?

【问题讨论】:

  • 您是否检查过您的托管邮件端口没有被防火墙阻止 (port587)?
  • 更改端口号。到“465”
  • @KuKeC 端口已打开 @K arun 尝试了此端口仍然无法正常工作
  • 在邮件函数被调用后调用print_r(error_get_last()),看看你有什么错误。或者尝试使用MAIL_DRIVER=sendmail 而不是MAIL_DRIVER=smtp
  • 对于sendmail 我应该使用什么端口? @KuKeC

标签: php laravel email server laravel-5.3


【解决方案1】:

在您的情况下,可能会出现很多问题。我尝试列出所有可能的选项:

  1. 尝试使用端口 465 而不是 587,因为 Gmail 通常使用该端口。
  2. 检查您的实时服务器上的端口是否被阻止。
  3. 登录到您的 gmail 帐户 (mygmail@gmail.com)。转到https://myaccount.google.com/security,向下滚动到页面底部。在右侧,您会看到:允许安全性较低的应用,确保该选项处于打开状态。

希望对你有帮助

【讨论】:

  • 我已经检查了你写的所有东西......仍然无法正常工作
猜你喜欢
  • 2019-07-26
  • 2016-01-02
  • 1970-01-01
  • 1970-01-01
  • 2014-11-27
  • 1970-01-01
  • 2018-08-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多