# Amazon AWS SDK SES for PHP - 1
์์ง๋ ์ฝ์ง์ค. ๊ทธ๋๋ ์ฒจ๋ถํ์ผ ๋๋ค! ๋๋ฌผ์ด ํ๋ฅธ๋ค...
์ฐ์ ์ค๋๊บผ๊น์ง๋ผ๋ ์ ๋ฆฌํ์
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์ด๋ ๋ฐ๋์ง์ผ๋ก ํ๊ฒ!
- 1, 2์์ ๋ฐ์ ํ์ผ์ ์์ถ์ ํ์ด ํ์ธํด๋ณด๋ฉดย
- 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๋ ์ฒจ๋ถํ ํ์ผ์ด๋ค.
- config.inc.php๋ 3-1์์ ๋งํ config-sample.inc.php๋ฅผ ์์ ํ ํ์ผ์ด๋ค.
- ์์ ์ ๋ค์๊ณผ ๊ฐ์ด ํ๋ฉด ๋๋ค.
CFCredentials::set(array( 'development' => array( 'key' => 'key๊ฐ ์
๋ ฅ', 'secret' => 'secret key๊ฐ ์
๋ ฅ', 'default_cache_config' => 'apc', 'certificate_authority' => false ), '@default' => 'development' ));
- key์๋ค๊ฐ key๊ฐ ์
๋ ฅ / secret์๋ค๊ฐ scecret๊ฐ ์
๋ ฅ
- default_cache_config์๋ ๋ฌด์จ๊ฐ์ ๋ฃ์ด์ผํ๋ ์ฌ์ค ์๋ชจ๋ฅด๊ฒ ์ผ๋
ย ย https://gist.github.com/1478912ย < ์ฐธ๊ณ ํ๋ฉด apc๊ฐ์ด ๊ธฐ๋ณธ๊ฐ์ธ๊ฒ ๊ฐ๋ค.
- ์ฌ๋ฌ๋ฒ์ ์ฝ์ง๋ก ํญํ์ง์ ์ด๋ผ ํ์ผ์ด๋ฆ ๊ตฌ๋ฆฌ๋ค.
ย ๋ณธ์ธ์ด ์ํ๋ ์ด๋ฆ์ผ๋ก ์ค์ ํ ๊ฒ (์ฌ๊ธฐ์ ์์๋ก test.php๋ผ๊ณ ํ๊ฒ ๋ค)
- ๋ค์๊ณผ ๊ฐ์ด ํ๋ฉด ๋๋ค.
<?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("<p>test</p>"); $mail_mime->addAttachment("test.txt"); $body = $mail_mime->get(); $headers = $mail_mime->txtHeaders(array('From' => '[email protected]', 'Subject' => "test subject")); $message = $headers . "\r\n" . $body; $ses = new AmazonSES(); $r = $ses->send_raw_email(array('Data' => base64_encode($message)), array('Destinations' => '[email protected]')); 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"); } ?>
(์์ค์ฝ๋์ ๋ํ ์์ธํ ๋ด์ฉ์ย ์ฐธ๊ณ ์ฌ์ดํธ๋ผ๊ณ ์ ์ด๋ฃ์ ๋งํฌ๋ค ์ค์ ์์ค์ฝ๋ ์ค๋ช
์ด๋ผ๋ URL์ ๋ค์ด๊ฐ๋ฉด๋๋ค.)
- ์ดํ ์ฝ์งํ๊ณ ์ ๋ฆฌํ ๊ฒฐ๊ณผ ์ด๋๋ก๋ผ๋ฉด ์๋ง ์คํ๋ ๊ฒ์ด๋ค.
์ฐธ๊ณ ) ๋ฐ๋ ๋ฉ์ผ์ 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