2017-02-22 27 views
0

Я использую smtp драйвер, и это мой код для отправки электронной почты в Laravel 5.2:Laravel Mail :: отправить возвращает ноль без конкретной ошибки в Mail :: неудач()

public function Sendmail() 
{ 
    $data["mail_message"] = "Hello!"; 
    if(Mail::send('Emails.email', $data, function($message) 
    { 
     $message->from('[email protected]', Input::get('name')); 

     $message->to('[email protected]')->subject('Welcome to My Laravel app!'); 
    })) 
    { 
     return "success"; 
    } 
    else 
    { 
     return Mail::failures(); 
    } 
} 

в Mail::failures() возвращается ["[email protected]"] с нет конкретной ошибки!

и это мой конфиг на mail.php:

return [ 

'driver' => env('MAIL_DRIVER', 'smtp'), 
'host' => env('MAIL_HOST', '*******'), 
'port' => env('MAIL_PORT', 587), 
'from' => ['address' => "****@*****", 'name' => "Diling"], 
'encryption' => env('MAIL_ENCRYPTION', ''), 
'username' => env('*****@*****'), 
'password' => env('*************************'), 
'sendmail' => '/usr/sbin/sendmail -bs', 
'pretend' => false, 

]; 

и я использую XAMP прямо сейчас, чтобы проверить электронную почту. Есть предположения?

+0

Что вы получаете в своем файле журнала? Они находятся в этом каталоге/проекте/хранилище/журналы/ – d1c1pl3

+0

Даже у меня такая же проблема. В журнале laravel нет ошибки, а Mail :: failures() возвращает просто идентификатор почты, по которому мы отправляем электронное письмо. –

ответ

0

У меня были проблемы с использованием переменных внутри почты :: send .. и im также не уверены, что mail :: send возвращает логическое или такое ... Я использовал что-то вроде того, что я записал в прошлом ,

$nameSend = Input::get('name'); 
    Mail::send('Emails.email', $data, function($message) use ($nameSend){ 
     $message->from('[email protected]', $nameSend); 
     $message->to('[email protected]')->subject('Welcome to My Laravel app!'); 
    }); 

. .

if(count(Mail::failures()) > 0) { 

    $output = "There was one or more failures. They were: \n"; 

    foreach(Mail::failures as $email_address) { 
    $output = $output. $email_address ."\n"; 
    } 
return $output; 
} 
return "Success!"; 
+0

Я не думаю, что проблема связана с типом ввода! на самом деле 'Mail :: send' должен отправить 1, если передача выполнена успешно или 0, если она не удалась. в моем случае он возвращает 0 и для 'Mail :: failures()' с кодом, который он возвращает: 'Был один или несколько сбоев. Они были: amirhasan.hesam @ gmail.com 'на самом деле, мне действительно нужно знать, почему это терпит неудачу! –

+0

Вы проверили журнал laravel? иногда отправка с ошибкой электронной почты и ее из-за ошибки, связанной с smtp –