2014-11-11 2 views
2

임 laravel에서 메일을 보내려고 필드에서 보낼 수 없습니다와 나는 필드에서 동적를 추가 할 때이 오류가 얻을 : (501) A "메시지와 함께,"501Laravel 메일

"예상 응답 코드 (250)를하지만, 코드를 가지고" 구문 오류는이 코드입니다

".. 명령 인수에 발생했습니다 :

$user = Input::get('user'); 
Mail::send('template.contact', $user , function($message) use ($user) 
{ 
    $email = $user['email']; 
    $message->from($email , 'name'); thats doesnt 
    //$message->from('[email protected]', 'Laravel'); that work 

    $message->to('[email protected]', 'contact us')->subject($user['subject']); 
}); 

사용자는 각도에서오고있다 - 서비스 :

및 컨트롤러 :

contactService.sendConatctMail($scope.user); 
+1

'var_dump''Mail :: send' 전에'$ user' –

+0

ajax 요청을하는 코드를 보여줄 수 있습니까? – Latheesan

+0

예, 지금 업데이트 중 – Bazinga

답변

1

해결 방법은 다음과 같습니다.

의이 this.sendConatctMail = function(data) {data을 가정 해 보자는이 같은 객체 : 당신이 그것을 게시하기 전에

var data { 
    email: '[email protected]', 
    // other field: values 
} 

오른쪽,이 같은 JSON 문자열로 변환해야합니다

return $http.post('send-contact-mail', {user: JSON.stringify(data)}); 

을 다음 Laravel에/PHP 쪽, array으로 다시 디코딩하고 다음과 같이 사용하십시오 :

if (Input::has('user')) 
{ 
    // Decode json string 
    $user = @json_decode(Input::get('user'), true); 

    // Proceed if json decoding was success 
    if ($user) 
    { 
     // send email 
     Mail::send('template.contact', $user , function($message) use (&$user) 
     { 
      $message->from($user['email'], 'name') 
        ->to('[email protected]', 'contact us') 
        ->subject($user['subject']); 
     }); 
    } 
} 
+0

지금이 오류를 받고 : 인수 2 전달 Illuminate \ Mail \ Mailer :: send()는 array 유형이어야하며 object가 있어야합니다. 그것은 배열을 기대하고 그것을 객체로 변환합니다. – Bazinga

+0

아, 쉽게 고칠 수 있습니다. JSON 문자열을 객체가 아닌 배열로 다시 디코드하려고합니다. 답변이 업데이트되었습니다. – Latheesan

0

문제는 함께 당신의 $email = $user['email'];

확인해보십시오 당신이 다음

$email = $user['email']; 
$message->from($email , 'name'); 
0 작동 $message->from('[email protected]', 'Laravel'); 경우 $user['email']

내 응용 프로그램에서

이 일을해야 ...

나는 많은 문제없이 같은 시도 ...

나는 그러한 문제 내 모든 Ajax 요청에 _token 변수를 전달하는 데 필요한?

+0

var 사용자가 올바른 문자열을 받고 있지만 그 오류가 아직 내게이 오류를 줘 – Bazinga

1

이것이 도움이 될지 모르겠지만 Laravel을 통해 이메일을 보낼 때마다 use(...) 섹션을 약간 변경해야합니다.당신은이 :

$user = Input::get('user'); 
Mail::send('template.contact', $user , function($message) use ($user) 
... 

이로 변경 시도하고 어떻게되는지 : 내가 만든

$user = Input::get('user'); 
Mail::send('template.contact', array('user' => $user), function($message) use (&$user) { 
    $message->from($user['email'], $user['name']); 
    $message->to('[email protected]', 'contact us')->subject($user['subject']); 
} 

2 변경 :

array('user' => $user) 

use(&$user) 

내가 돈을 ' 그게 너를 도울 지 알지만, 나는 일하고있어. 단지 $variable 대신 &$variable을 제외하고 내 애플리케이션의 애플리케이션과 거의 동일합니다.

행운을 비네!

관련 문제