2016-09-13 2 views
0

나는 Laravel에 sendgrid를 통합했으며 이메일에서 sendgrid의 이메일 템플릿을 보내지 만 이메일 템플릿의 내용을 바꿀 수는 없습니다. 나는 Sendgrid Web API V3를 사용하고있다.sendgrid의 이메일 템플릿에 동적 데이터를 전달하는 방법은 무엇입니까?

아래 링크에 나와있는 단계를 수행했지만 템플릿의 변수가 동적 데이터로 대체되지 않습니다.

링크 : 여기 How to pass dynamic data to email template desgined on sendgrid webapp ? :-| Sendgrid

은 도와주세요 코드

$sg = new \SendGrid('API_KEY');   
$request_body = json_decode('{ 
      "personalizations":[ 
       { 
        "to":[ 
        { 
         "email":"[email protected]" 
        } 
        ], 
        "subject":"Hello World from the SendGrid PHP Library!" 

       } 
      ], 
      "from":{ 
       "email":"[email protected]" 
      }, 
      "content":[ 
       { 
        "type":"text/html", 
        "value":"<html><body> -name- </body></html>" 
       } 
      ], 
      "sub": { 
       "-name-": ["Alice"] 
       }, 
      "template_id":"xxxxxx-xxx-xxxxxxxx" 

     }'); 

$mailresponse = $sg->client->mail()->send()->post($request_body); 
echo $mailresponse->statusCode(); 
echo $mailresponse->body(); 
echo $mailresponse->headers(); 

입니다.

답변

0

다른 방법으로이 문제를 극복했습니다. 아래는 잘 작동하는 코드입니다. 어떤 사람을 도울 수 있습니다 ..

//create mail object 
$mail = new \SendGrid\Mail(); 
//set from 
$from = new \SendGrid\Email("SENDER NAME", "SENDER EMAIL"); 
$mail->setFrom($from); 
//set personalization 
$personalization = new \SendGrid\Personalization(); 
$to = new \SendGrid\Email("RECEIVER NAME", "RECEIVER EMAIL"); 
$personalization->addTo($to); 
$personalization->setSubject("SUBJECT"); 
//add substitutions (Dynamic value to be change in template) 
$personalization->addSubstitution(':name', "Any"); 

$mail->addPersonalization($personalization); 
$mail->setTemplateId("TEMPLATE_ID"); 
//send email 
$sg = new \SendGrid("API_KEY"); 

$response = $sg->client->mail()->send()->post($mail); 
0

다소 늦었지만 어쩌면 이것이 도움이 될 수 있습니다. 저도 같은 문제에 직면하고 @bwestanswer 그것을 해결하기 위해 나를 도와 :

대체 값을 배열 할 수 없으며이 like을 보일 것입니다 :

`"personalizations":[{ 
     "to":[{ 
      "email":"[email protected]" 
      }], 
     "subject":"Hello World from the SendGrid PHP Library!", 
     "substitutions": { 
       "-name-": "Alice" 
     }  
    } 
    ], 
    ... 
관련 문제