Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel使用cpanel共享主机发送电子邮件-失败_Php_Laravel_Email_Cpanel_Shared - Fatal编程技术网

Php Laravel使用cpanel共享主机发送电子邮件-失败

Php Laravel使用cpanel共享主机发送电子邮件-失败,php,laravel,email,cpanel,shared,Php,Laravel,Email,Cpanel,Shared,我需要向在我的应用程序上注册的任何用户发送验证邮件。我的Laravel版本是5.4.36。我正在使用与cpanel共享的主机 所以我通过cpanel建立了一个电子邮件帐户,可以发送电子邮件。以下是cpanel建议的设置: 用户名:rutko@mladensblogger.rs 密码:使用电子邮件帐户的密码。 传入服务器:mail.mladensblogger.rs IMAP端口:993 POP3端口:995 传出服务器:mail.mladensblogger.rs SMTP端口:465 这是我的

我需要向在我的应用程序上注册的任何用户发送验证邮件。我的Laravel版本是5.4.36。我正在使用与cpanel共享的主机

所以我通过cpanel建立了一个电子邮件帐户,可以发送电子邮件。以下是cpanel建议的设置:

用户名:rutko@mladensblogger.rs 密码:使用电子邮件帐户的密码。 传入服务器:mail.mladensblogger.rs

IMAP端口:993 POP3端口:995

传出服务器:mail.mladensblogger.rs

SMTP端口:465

这是我的.env:

MAIL_DRIVER=smtp
MAIL_HOST=mail.mladensblogger.rs
MAIL_PORT=465
MAIL_USERNAME=rutko@mladensblogger.rs
MAIL_PASSWORD=myaccountpass
MAIL_ENCRYPTION=tls
我觉得一切正常,这是需要发送邮件的控制器:

RegisterController.php

public function store(Request $request)
{

    // ************************** -- RULES -- ***************************

    $rules = [
        'tbEmail' => 'required|email|unique:users,email',
        'tbUser' => 'required|alpha_num|unique:users,user',
        'tbPass' => 'required|min:6',
        'tbPassConfirm' => 'required|same:tbPass',
        'tbNameSurname' => 'required|min:3',
        'tbPhone' => 'required|regex:/^[0-9]*$/'
    ];

    // ************************** -- MESSAGES -- ***************************

    $messages = [
        'required' => 'Polje :attribute je obavezno',
        'same' => 'Ponovljena lozinka nije ista kao i lozinka',
        'regex' => ':attribute nije u dozvoljenom formatu',
        'email' => 'Email nije u dobrom formatu',
        'tbPhone.regex' => 'Broj telefona mora biti zapisan brojevima i ne sme sadržati slova',
        'tbUser.regex' => 'Korisničko ime mora početi malim slovom, i ne sme imati razmake',
        'tbNameSurname.min' => 'Ime nije u ispravnom formatu',
        'min' => ':attribute mora imati minimum :min karaktera',
        'unique' => ':attribute je već iskorišćen/a'
    ];

    $this->validate($request, $rules, $messages);

    $email = $request->get('tbEmail');
    $username = $request->get('tbUser');
    $pass = $request->get('tbPass');
    $passConfirm = $request->get('tbPassConfirm');
    $nameSurname = $request->get('tbNameSurname');
    $phone = $request->get('tbPhone');

    try{
        $user = new User(); // Model for saving the user
        $user->email = $email;
        $user->pass = $pass;
        $user->user = $username;
        $user->name_surname = $nameSurname;
        $user->phone = $phone;

        $result = $user->saveWithRegularUserRole();

        $verify_user = new VerifyUser();
        $result_for_id = $user->getByUserAndPass();
        $verify_user->user_id = $result_for_id->id;
        $verify_user->token = str_random(40);
        $verify_user->create();

        //Mail::to($user->email)->send(new VerifyMail($user));

        if($result == 1){
            return redirect()->route('index')->with('success', 'Uspešno ste se registrovali');}
        else{
            return redirect()->route('index')->with('error', 'Neuspeh pri registraciji, molimo pokušajte opet!');}
    }
    catch (\Exception $exception){
        \Log::error('Error: ' . $exception->getMessage());
        return redirect('/')->with('error', 'Greška pri radu aplikacije, molimo pokušajte ponovo!');
    }


}
这是验证邮件

class VerifyMail extends Mailable
{
    use Queueable, SerializesModels;

    public $user;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($user)
    {
        $this->user = $user;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->view('emails.verifyUser');
    }
}

在存储用户后返回的我的视图中,如果一切都正确通过,则显示成功,否则显示错误。基本上,mail不会发送,view显示错误,但当我对mail::toline进行注释时,会显示成功。我不知道,并且尝试了多种方法来修改.env文件,可能是控制器出了问题?

您有什么错误?您正在登录
\Log::error('error:'。$exception->getMessage())
,这样在存储/logs/laravel.log中就有了一些东西。这里是:[2018-08-03 19:22:08]local.ERROR:ERROR:View[View.name]找不到。我现在才意识到我正在尝试发送一个不存在的视图。我替换为一个现有视图,但现在它仍然返回一个有错误的页面,并且错误日志文件为空(在注册时没有显示错误)。哇,我实际上取得了一些进展。我将邮件驱动程序改为“邮件”,现在它可以工作了!只有它发送邮件到垃圾邮件,这有点困扰我,当从主机发送邮件时,它几乎总是在垃圾邮件中着陆,你需要的是像邮枪一样的东西,他们有白名单服务器,它也是免费的,并将与你的主机一起工作