我正在尝试使用 Amazon SES 发送附件附件的电子邮件。
这是我正在做的事情:
<?php
$file_path = DOC_ROOT.'/report/';
$myfile = $file_path.$filename;
$file_size = filesize($myfile);
$handle = fopen($myfile, "r");
$content = fread($handle, $file_size);
$subject = 'Report';
$content = chunk_split(base64_encode($content));
$header = "";
$message =
'<html>
<head><title></title></head>
<body>
<p>Hello '.$vEmail.',</p></br>
<p>Please find attached file.</p>
<p>Regards,</p>
<p>'.MAINTITLE.'</p></br>
</body>
</html>';
$ses = new Simpleemailservice(AWS_ACCESSKEY, AWS_SECRET);
$from = FROM_EMAIL_SES;
$uid = md5(uniqid(time()));
$header = "From: ".$from." <".$from.">\r\n";
$header .= "To: ".$vEmail."\r\n";
$header .= "Subject: ".$subject."\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
$header .= "This is a multi-part message in MIME format.\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-type:text/html; charset=iso-8859-1\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= $message."\r\n\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-Type: text/csv; name=\"".$myfile."\"\r\n";
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment; filename=\"".$myfile."\"\r\n\r\n";
$header .= $content."\r\n\r\n";
$header .= "--".$uid."--";
$msg['RawMessage']['Data'] = base64_encode($header);
$msg['RawMessage']['Source']= $from;
$msg['RawMessage']['Destinations'] = $vEmail;
fclose($handle);
$result = $ses->sendRawEmail($msg);
$msg_id = $result->get('MessageId');
?>
我得到的错误:
致命错误:在非对象上调用成员函数
setParameter()
在/libraries/Simpleemailservice.php
第267行
我发现了这个Answer,但没有帮助。
答案 0 :(得分:1)
初始化可能有问题, 您可以查看API文档以获取详细信息。
我可以通过PHPMailer和Amazon SNS为您提供更好的选择。您可以查看我在下面提供的代码。 https://gist.github.com/kilitbilgi/f697898339e3e751c32c735ac9c4ba1d