2017-12-20 21 views
0

현재 mail() 함수 (PHP 함수)을 사용하여 내 웹 사이트 사용자에게 전자 메일을 보냅니다. 그러나 슬프게도 그들은 스팸 폴더에 들어갑니다. 몇 가지 조사가 끝나면 이메일을 보내기 위해 우편물을 사용해야한다는 사실을 알았습니다. 그래서 내 첫 질문 : 그것은 사실입니까? (스팸을 피하기 위해 이메일을 보낼 때 mailchimp 사용).php 및 mailchimp를 사용하여 이메일을 보내려면 어떻게해야합니까?

간단히 말해, 내 웹 사이트 사용자에게 등록 활성화로 이메일을 보내는 것입니다.


그리고 여기 내 코드입니다 :

<?php 

$apiKey = "df96e260041c0e31bb80bd2fb9a230a2-us17"; 
$campaignId = "70623"; 

$memberId = md5(strtolower("[email protected]")); 
$dataCenter = substr($apiKey,strpos($apiKey,'-')+1); 
$url = 'https://'. $dataCenter . '.api.mailchimp.com/3.0/campaigns/' . $campaignId .'/actions/test'; 

$jsonEmail = '{"test_emails":["the mail you want to send thing sat"],"send_type":"html"}'; 

$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_USERPWD, 'apikey:'.$apiKey); 
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_TIMEOUT, 10); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonEmail); 

$result = curl_exec($ch); 
curl_close($ch); 

var_dump($result); 

?> 

그리고 반환

문자열 (234) "{"유형 ":"http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/ ","제목 "" 리소스 ","상태 ": 404,"세부 사항 ":"요청한 리소스를 찾을 수 없습니다. ","인스턴스 ":"4541f02b-ea08-44da-a1d0-0f45f5457399 "}"

어떻게 해결할 수 있습니까?

+0

이 패키지를 사용해보십시오. https://github.com/drewm/mailchimp-api – Wilon

+0

@Wilon 감사합니다 .. 그 라이브러리의 구현 예제가 있습니까? – stack

+2

보안상의 이유로 MailChimp API 키를 코드 전체로 표시하지 않습니다. 누구든지 귀하의 계정에 액세스하여 모든 종류의 이메일을 보낼 수 있습니다! MailChimp에서 해당 키를 사용하지 않도록 설정하고 (누군가 이미 키 코드를 집어 넣었을 경우를 대비하여) 새 코드를 만들지 만 코드에 추가하지 마십시오. – zeiddev

답변

0

MailChimp 사용법을 이해하지 못했을 것입니다. 위의 코드는 MailChimp의 끝점을 사용합니다.이 끝점은 캠페인을 테스트하는 데 사용됩니다. 즉, 한 명 또는 두 명의 사용자에게 테스트 전자 메일을 보내서 캠페인을 보내면 예상대로 작동합니다.

일반적으로 아이디어는 한 번에 많은 사람에게 발송 될 예정인 캠페인을 만드는 것입니다. 여기에는 자동화 및 트랜잭션 전자 메일 (MailChimp는 트랜잭션 전자 메일 응용 프로그램 인 Mandrill을이 용도의 주 응용 프로그램에 통합했습니다)을 포함하여 다양한 변형이 있습니다.

일반적으로 php mail()은 개별 전자 메일, 즉 대량 전자 메일이 아닌 트랜잭션 전자 메일을 보내는 데 사용됩니다.

MailChimp를 통해 트랜잭션 전자 메일을 보내려면 응용 프로그램의 해당 영역을 확인하거나 Mandrill을 찾습니다. 캠페인 유형 전자 메일을 보내려면 전자 메일 목록을 설정하고 전자 메일 캠페인을 테스트하는 데만 사용되는 테스트 대신 POST/캠페인/{campaign_id}/actions/send를 사용해야합니다.

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); 

: 나는 다음과 같은 사용했을

curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']); 

: 특정 예로서

...

난 당신이 여기에 준 구문에 대한 확실하지 않다 그 외에는 내 자신의 API 키와 캠페인을 사용할 때 예제가 작동합니다. 캠페인 ID가 유효하지 않은 것처럼 유효하다는 사실을 확인하는 것이 좋을 수 있습니다.