2015-08-14 129 views
0

我试图建立我的亚马逊SES与PHP和我导致了已经在这里所做的这一发现github上:https://github.com/daniel-zahariev/php-aws-ses如何正确建立亚马逊SES

我有困难就前往工作,我不确定我做错了什么。有经验的人能给我一些关于进一步做什么的见解吗?它说它正在发送电子邮件,但是当我检查我的收件箱时,什么都没有发生。以下是我的代码:

require_once('src/SimpleEmailService.php'); 
require_once('src/SimpleEmailServiceMessage.php'); 
require_once('src/SimpleEmailServiceRequest.php'); 
$ses = new SimpleEmailService('myaccessid', 'myaccesskey'); 
$m = new SimpleEmailServiceMessage(); 
$m->addTo('[email protected]'); 
$m->setFrom('Name <[email protected]>'); 
$m->setSubject('You have got Email!'); 
$m->setMessageFromString('Your message'); 
$ses->sendEmail($m); 
+1

您是否验证了您的发件人电子邮件地址? http://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-email-addresses.html – BestPractices

+0

你好,这是正确的。我验证了发件人的地址。虽然我没有验证我的DKIM,也不确定是否真的需要它发送电子邮件。 – chronotrigga

+0

我也尝试将addTo发送到验证的电子邮件,但我仍然没有收到电子邮件。 – chronotrigga

回答

2

如果您不愿意使用任何创建的类,只是直接使用SDK即可,这里是一个工作代码;

// Include AWS SDK for PHP 

$path = $_SERVER['DOCUMENT_ROOT']; 
$path .= "/php/awssdk/aws-autoloader.php"; 
require($path); 

// Instantiate an SES instance 

$client = SesClient::factory(array(
      'key' => 'your key', 
      'secret' => 'your secret', 
      'region' => 'your region' 
     )); 

//Now that you have the client ready, you can build the message 
    $msg = array(); 
    $msg['Source'] = "verified email"; 
    //ToAddresses must be an array 
    $msg['Destination']['ToAddresses'][] = "verified email"; 

    $msg['Message']['Subject']['Data'] = "Your Subject"; 
    $msg['Message']['Subject']['Charset'] = "UTF-8"; 
    $msg['Message']['Body']['Html']['Data'] ="Your message"; 
    $msg['Message']['Body']['Html']['Charset'] = "UTF-8"; 
    $result = $client->sendEmail($msg); 
    if($result) { 
     echo "Email Sent"; 
    }