2013-05-19 2 views
5

각 이메일마다 고유 한 인수 목록을 설정하려고하면 SMTP API의 공식 참조에서이 기능을 매우 간략하게 설명합니다 (here).개별 이메일의 SendGrid 고유 인수

그리고 내가 사용하여 SendGrid PHP 라이브러리의 API 문서도 많은 도움이되지 않았다 : 그래서 사실, 나는 명백한 논리적 인 결론 내 구현을 기반으로 만들하기로 결정

/** 
    * setUniqueArguments 
    * Set a list of unique arguments, to be used for tracking purposes 
    * @param array $key_value_pairs - list of unique arguments 
    */ 
    public function setUniqueArguments(array $key_value_pairs) 
    { 
    $this->header_list['unique_args'] = $key_value_pairs; 
    return $this; 
    } 

    /** 
    * addUniqueArgument 
    * Set a key/value pair of unique arguments, to be used for tracking purposes 
    * @param string $key - key 
    * @param string $value - value 
    */ 
    public function addUniqueArgument($key, $value) 
    { 
    $this->header_list['unique_args'][$key] = $value; 
    return $this; 
    } 

헤더의 고유 인수 부분에 대한 다차원 json을 대체 값 배열과 수신자 배열에 일대일로 대응하지만 불행히도 작동하지 않아 유효하지 않은 XSMTP API 헤더 오류가 발생했습니다. 내 이메일로 반송.

이전에이 기능을 사용 해본 적이 있고 올바르게 사용하는 방법에 대해 간단히 안내 할 수 있다면 (각 addTo 이후에 addUniqueArgument를 호출하는 등) 도움이 될 수 있습니다.

+0

이메일에 헤더를 몇 개라도 설정할 수 있습니다.하지만 중요한 질문은 무엇입니까? –

+0

더 나은 문서를 만들려면 합의가 필요합니다. –

답변

5

고유 한 인수를 먼저 언급하고 있지만 완전히 관련이없는 대체를 언급하고 있습니다. 고유 한 인수가 전체적으로 API 호출에 적용됩니다. 예를 들어 시스템에 일} 처리 ID가 들어있어 전자 우편 이벤트를보다 쉽게 ​​데이터에 일치시킬 수 있습니다. 그러나 대체는 기본적으로 전자 메일의 문자열을 대체하여 각 전자 메일의 수신자를 개인 설정하고 API 호출 대신 전자 메일의 각받는 사람에게 적용합니다.

Sendgrid 독특한 인수

당신이 그들의 API 라이브러리를 사용하는 경우 당신은 단순히 다른 PHP 객체로 라이브러리를 사용하여 JSON 요청 헤더와 엉망이 없습니다.

$Sendgrid -> setUniqueArguments(array(
    'var1' => 'value1', 
    'var2' => 'value2', 
    'var3' => 'value3' 
)); 

나이 : 예를 들어, 당신은 하나이의 세 가지 변수, var1, var2, var3을 설정해야하는 경우

$Sendgrid -> addUniqueArgument('var1', 'value1'); 
$Sendgrid -> addUniqueArgument('var2', 'value2'); 
$Sendgrid -> addUniqueArgument('var3', 'value3'); 

첫 번째 옵션 setUniqueArguments 완전히 다른 변수를 대체하는 것의 차이 전에 추가했지만 두 번째 것은 addUniqueArgument이며, 기존 변수에 변수를 추가합니다.

Sendgrid 대체

의 당신이 자신의 API 라이브러리를 사용하고 2받는 사람, [email protected] 예 닷컴 @ 앨리스를 가지고, 당신은 이메일에 자신의 이름을 언급 할 필요가 있다고 가정 해 봅시다. 이 경우 전자 메일의 본문에 자리 표시 자 문자열을 사용합니다. 기본적으로 정상적으로 발생하지 않는 항목입니다. 우리의 경우,의 그것이 될 수 가정 해 봅시다 : <<Name>>는받는 사람의 이름에 대한 자리 표시 자입니다

Hello <<Name>> 

. 수신자와 같은 순서로 있어야 addSubstituion 호출에

$Sendgrid -> addTo('[email protected]'); 
$Sendgrid -> addTo('[email protected]'); 
$Sendgrid -> addSubstitution('<<Name>>', array('Bob', 'Alice')); 

값 :이 경우에는 (내가 이메일 내용과 관련 부품 등을 떠날거야) 같은 API 호출을 구성 할 수 있습니다 명부.

+2

이것은 SendGrid의 공식 답변이 반영된 것입니다. 대답 해줘서 고마워! – Swift