본문으로 바로가기

Amazon AWS SDK SES for PHP - 1

category Helloworld!/Amazon AWS 2012.12.21 18:56

1. amazon aws ses sdk 중 php용을 다운 받는다.

1.1 amazon에서 download (http://aws.amazon.com/ko/sdkforphp/)

- AWS PHP SDK 다운로드라는 버튼 클릭 

참고) github보단 amazon에서 받는 것을 권장 (어차피 똑같은 파일이라는거~)

1.2 github에서 download (https://github.com/amazonwebservices/aws-sdk-for-php)

- 상단에 구름모양에 ZIP이라고 써있는 버튼 클릭


2. pear에서 Mail_Mime 다운 받는다.

http://pear.php.net/package/Mail_Mime/download

참고) 본인은 1.8.6 버전을 받았다.

참고) .tgz 파일로 다운받아지는데 이 확장자는 알집으로 풀지못한다. 

        7-Zip이나 반디집으로 풀것!


3. 개발환경 구축

- 1, 2에서 받은 파일을 압축을 풀어 확인해보면 

3.1 amazon aws ses sdk

- amazon aws ses sdk 중에서 utilities, authentication, lib 폴더가 있는데

  이 세 폴더를 싸그리다 개발할 폴더에 담는다. 

- 그리고 config-sample.inc.php, sdk.class.php도 포함한다.

- 마지막으로 services폴더안에 있는 ses.class.php도 포함.

3.2 Pear의 Mail_Mime에서는 Mail이라는 폴더를 통째로 개발할 폴더에 담는다.

참고) 이런식으로…여기서 test.php는 내가 작성한 파일 / test.txt는 첨부할 파일이다.


4. config.inc.php 수정

CFCredentials::set(array(
	'development' => array(
		'key' => 'key값 입력',
		'secret' => 'secret key값 입력',
		'default_cache_config' => 'apc',
		'certificate_authority' => false
	),
	'@default' => 'development'
));

- config.inc.php는 3-1에서 말한 config-sample.inc.php를 수정한 파일이다.

- 수정은 다음과 같이 하면 된다.

include_once('Mail/mime.php');
include_once('sdk.class.php');
include_once('ses.class.php');

$mail_mime = new Mail_mime(array('eol' => "\n"));
$mail_mime->setTxtBody("test\n");
$mail_mime->setHTMLBody("

test

"); $mail_mime->addAttachment("test.txt"); $body = $mail_mime->get(); $headers = $mail_mime->txtHeaders(array('From' => 'o1032002241@netpas.net', 'Subject' => "test subject")); $message = $headers . "\r\n" . $body; $ses = new AmazonSES(); $r = $ses->send_raw_email(array('Data' => base64_encode($message)), array('Destinations' => 'o1032002241@gmail.com')); if ($r->isOK()) { print("Mail sent; message id is " . (string) $r->body->SendRawEmailResult->MessageId . "\n"); } else { print("Mail not sent; error is " . (string) $r->body->Error->Message . "\n"); }

- key에다가 key값 입력 / secret에다가 scecret값 입력

- default_cache_config에는 무슨값을 넣어야하는 사실 잘모르겠으나

  https://gist.github.com/1478912  < 참고하면 apc값이 기본값인것 같다.


5. test.php 추가

- 여러번의 삽질로 폭팔직전이라 파일이름 구리다.

  본인이 원하는 이름으로 설정할것 (여기선 임의로 test.php라고 하겠다)

- 다음과 같이 하면 된다.

(소스코드에 대한 자세한 내용은 참고사이트라고 적어넣은 링크들 중에 소스코드 설명이라는 URL에 들어가면된다.)


6. 실행

- 이틀 삽질하고 정리한 결과 이대로라면 아마 실행될것이다.

참고) 받는 메일은 yahoo.com가 빨리 온다고 하지만 첨부파일 다운이 안된다. (보안때문에)


* 참고사이트 : 

- 소스코드 설명

http://aws.typepad.com/aws/2011/07/amazon-simple-email-service-now-supports-attachments.html

- Pear mail_mime 메뉴얼

http://pear.php.net/package/Mail_Mime/docs/latest/Mail_Mime/Mail_mime.html

- Amazon AWS SDK SES 메뉴얼

http://docs.amazonwebservices.com/AWSSDKforPHP/latest/index.html#i=AmazonSES



댓글을 달아 주세요