我从客户端获得服务器,这是我第一次使用Amazon EC2服务器,在服务器内部安装Apache,MySQL和PHP,客户端安装Amazon SES邮件服务器,然后它们向我发送访问密钥和密钥对我来说很关键对于电子邮件配置,我安装了composer,aws-sdk-php和PHPMailer,并使用它们包括密钥发送给我的代码。我尝试通过网站联系表发送电子邮件,但没有收到电子邮件。请在下面附上我的代码。请检查并告知我我的代码在哪里出错。
注意:我将插件安装在var / www / html文件夹中。
require '../vendor/autoload.php';
use Aws\Ses\SesClient;
use Aws\Exception\AwsException;
// Create an SesClient. Change the value of the region parameter if you're
// using an AWS Region other than US West (Oregon). Change the value of the
// profile parameter if you want to use a profile in your credentials file
// other than the default.
$SesClient = new SesClient([
'profile' => 'default','region' => 'us-west-2','key' => 'xxxxxxxx','secret' => 'xxxxxxxxx'
]);
// Replace sender@example.com with your "From" address.
// This address must be verified with Amazon SES.
$sender_email = 'no-reply@demo.com';
// Replace these sample addresses with the addresses of your recipients. If
// your account is still in the sandbox,these addresses must be verified.
$recipient_emails = ['demo@gmail.com','demo123@gmail.com'];
// Specify a configuration set. If you do not want to use a configuration
// set,comment the following variable,and the
// 'ConfigurationSetName' => $configuration_set argument below.
$configuration_set = 'ConfigSet';
$subject = 'Amazon SES test (AWS SDK for PHP)';
$plaintext_body = 'This email was sent with Amazon SES using the AWS SDK for PHP.' ;
$html_body = '<h1>AWS Amazon Simple Email Service Test Email</h1>'.
'<p>This email was sent with <a href="https://aws.amazon.com/ses/">'.
'Amazon SES</a> using the <a href="https://aws.amazon.com/sdk-for-php/">'.
'AWS SDK for PHP</a>.</p>';
$char_set = 'UTF-8';
try {
$result = $SesClient->sendEmail([
'Destination' => [
'ToAddresses' => $recipient_emails,],'ReplyToAddresses' => [$sender_email],'Source' => $sender_email,'Message' => [
'Body' => [
'Html' => [
'Charset' => $char_set,'Data' => $html_body,'Text' => [
'Charset' => $char_set,'Data' => $plaintext_body,'Subject' => [
'Charset' => $char_set,'Data' => $subject,// If you aren't using a configuration set,comment or delete the
// following line
'ConfigurationSetName' => $configuration_set,]);
$messageId = $result['MessageId'];
echo("Email sent! Message ID: $messageId"."\n");
} catch (AwsException $e) {
// output error message if fails
echo $e->getMessage();
echo("The email was not sent. Error message: ".$e->getawsErrorMessage()."\n");
echo "\n";
}