amazon-ses - 初哥請教php環境下如何使用amazon SES

來源:互聯網
上載者:User

你好,我的網站需要發送啟用郵件,目前使用的是smtp,很多都進了垃圾箱,我註冊了amazon ses,但搞不得怎麼使用,我想請教下php環境下如何使用amazon ses的,我見 segmentfault這個網站也是使用了這個服務


另外補充兩個問題,如何設定寄件者名字,如上述圖片中的SegmentFault問答社區

還有就是如何發html郵件,我這樣設定不行的:

$m->setMessageFromString('','我是哥This is the message body.
');

收到的郵件只有:我是哥This is the message body.後面的內容則沒有

回複內容:

你好,我的網站需要發送啟用郵件,目前使用的是smtp,很多都進了垃圾箱,我註冊了amazon ses,但搞不得怎麼使用,我想請教下php環境下如何使用amazon ses的,我見 segmentfault這個網站也是使用了這個服務


另外補充兩個問題,如何設定寄件者名字,如上述圖片中的SegmentFault問答社區

還有就是如何發html郵件,我這樣設定不行的:

$m->setMessageFromString('','我是哥This is the message body.
');

收到的郵件只有:我是哥This is the message body.後面的內容則沒有

要使用ses服務首先你得確保開通了此服務,假設你已經申請開通了ses,並已經擷取了"Access Key"和"Secret Key"

然後你需要先下載一個庫檔案http://aws.amazon.com/code/Amazon-SES...,第一次使用需要先驗證你是否是寄件匣的所有者,你需要執行下列代碼

require_once 'ses.php';$ses = new SimpleEmailService('Access Key Here', 'Secret Key Here');// 這裡填你需要作為寄件匣的郵箱地址,這個地址必須存在,因為它會發一封郵件過去驗證print_r($ses->verifyEmailAddress('user@example.com'));

如果成功的話,會返回類似下面的內容

Array(  [RequestId] => 1b086469-291d-11e0-85af-df1284f62f28)

這時候,登入到你剛才填寫的郵箱裡去,你會收到一封驗證郵件,點擊郵件裡的驗證鏈結接即可完成驗證步驟。

但是注意,這時候你還只能向自己發送郵件,不能其他任何第三方郵箱發送,因為此時你只是開發人員狀態,如果你需要向其他使用者發送郵件,你需要向亞馬遜“提出生產環境許可權申請(Request Production Access)”。

點擊這個連結提交申請,可能需要你填寫每天發送的限額,你可以根據自己的需要申請,反正以後也是可以調整的。

需要注意的是你的限額不是一部到位的,也就是說如果你提出每天發送1萬封郵件的限額,那麼你第一天大概只能發送100封,然後第二天發送500封,以此類推,大概一周后你就可以發送一萬封郵件了。這也是為了防止垃圾郵件製造者濫用這一服務。申請是人工審核的,所以需要等待一會,不過也沒有幾個小時。

當這一切都完成的了後,你就可以正常使用ses了,這裡有php代碼的樣本,非常簡單http://www.orderingdisorder.com/aws/s...

update

發送中文的問題,只需要設定下編碼即可

$m = new SimpleEmailServiceMessage();$m->addTo('recipient@example.com');$m->setFrom('user@example.com');$m->setSubject('我是中文標題');$m->setMessageFromString('我是中文內容.');// 再這裡設定標題和內容編碼$m->setSubjectCharset('UTF-8');$m->setMessageCharset('UTF-8');print_r($ses->sendEmail($m));
update

如果需要發送的是html內容,則需要使用setMessageFromString的第二個參數,這是專門用來發送html內容的,比如

// 第一個參數可以留空$m->setMessageFromString(NULL, '

這是html的測試

只是一個測試

');

如果要設定發送人名稱的話,可以在setFrom的時候按照'寄件者名稱 <郵箱地址>'的格式來設定,比如

$m->setFrom('Joyqi ');

但是如果你要把上面的Joyqi換成中文的話就會出現亂碼,這時候你需要自己用base64_encode手動編碼下,並指定編碼格式,比如

// 編碼函數function address_encode($str) {    return '=?UTF-8?B?' . base64_encode($str) . '?=';}$m->setFrom(address_encode('測試中文寄件者') . ' ');

好的,謝謝了,下載一個庫檔案,這個庫頁面打不開,是不是ses.php?如果是的話我去其他地方下載,你最後提到的例子串連裡面有

很簡單,很好用!

Notice: Undefined property: SimpleEmailServiceRequest::$resource in C:\xampp\htdocs\husili\email\ses.php on line 491

Warning: SimpleEmailService::sendEmail(): 60 SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in C:\xampp\htdocs\husili\email\ses.php on line 357

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.