使用PHP SDK从Amazon SES发送HTML邮件

fzwojiic  于 2023-02-18  发布在  PHP
关注(0)|答案(3)|浏览(163)

我正在工作的服务,从AWS SES服务发送电子邮件。我已经能够发送纯文本邮件,但我需要发送丰富的HTML邮件的情况之一。这是我使用的代码:

header("MIME-Version: 1.0; Content-type: text/html; charset=iso-8859-1");

    require_once(dirname(__FILE__).'/AWSSDKforPHP/sdk.class.php');

// Instantiate the Amazon class
$ses = new AmazonSES();

$source = 'abc@www..com';

$dest = array('ToAddresses'=>array($to));

$message = CFComplexType::map(array('Subject.Data'=>$subject, 'Body.Html.Data'=>$message_mail));

$rSendEmail = $ses->send_email($source, $dest, $message);

message_mail是一些放在表格中的HTML文本。我已经尝试了send_email和send_raw_email,但是都不起作用。我需要做一些额外的或不同的事情吗?

pzfprimi

pzfprimi1#

我知道这是一个老问题,但仍然写一个答案。并希望它能帮助别人在未来。

$m = new SimpleEmailServiceMessage();
$m->addTo('receiver email address');
$m->setFrom('send email address');
$m->setSubject('testing!');

$body= '<b>Hello world</b>';
$plainTextBody = '';

$m->setMessageFromString($plainTextBody,$body);    
print_r($ses->sendEmail($m));
mklgxw1f

mklgxw1f2#

这对我很有效(不使用SDK或SMTP):

require_once('ses.php');

$ses = new SimpleEmailService('accessKey', 'secretKey');

$m = new SimpleEmailServiceMessage();
$m->addTo('addressee@example.com');
$m->setFrom('Name <yourmail@example.com>');
$m->setSubject('You have got Email!');
$m->setMessageFromString('Your message');
$ses->sendEmail($m);

您可以从http://www.orderingdisorder.com/aws/ses/获取ses.php

bvk5enib

bvk5enib3#

我试过使用SES SDK,但它一点也不容易使用。我最终使用PHPMailer通过SMTP连接到SES。首先,从Amazon SES内部设置SMTP访问,然后将这些行添加到PHPMailer,让它通过TLS连接到SES:

$mail = new PHPMailer();

$mail->IsSMTP(true);
$mail->SMTPAuth = true;
$mail->Mailer = "smtp";
$mail->Host= "tls://email-smtp.us-east-1.amazonaws.com";
$mail->Port = 465;
$mail->Username = "";  // SMTP username (Amazon Access Key)
$mail->Password = "";  // SMTP Password (Amazon Secret Key)

// ... the rest of PHPMailer code here ...

PHPMailer非常擅长富电子邮件(带有文本回退)、嵌入图像和附件。

相关问题