Intereting Posts
Поиск существующей электронной почты и имени пользователя в базе данных Как переформатировать строку CActiveForm и его поведение не имеют метода или закрытия с именем «getErrors». Существует ли спецификация для «нетрадиционного» режима jQuery.param ()? Автоматически включать недостающие функции? Функция PHP, которая получает строку cron и возвращает следующую временную метку запуска PHP Preg_replace и Call of Duty Color Issue PHP Полный список функций и статусов, которые могут выводиться PHP отправляет почту с помощью заданного почтового сервера SMTP Проблема с простым фильтром профанации PHP Неустранимая ошибка: вызов неопределенной функции checkdnsrr () curl_exec () всегда возвращает false Каков наилучший способ сериализации SVG из DOM клиента? Запланированный запрос на мой сайт от внешнего источника PHP readfile () добавление дополнительных байтов в загруженный файл

aws: ses с прикрепленными файлами

Я использую Laravel 4 framework с AWS sdk для SES. Я могу отправлять обычные письма с помощью функции sendEmail. Я хочу, чтобы иметь возможность прикреплять файлы к письмам, проблема в том, что я не могу найти, как это сделать.

возможно ли использовать функцию sendEmail для прикрепления файлов, или я должен использовать функцию send_raw_email? (как это сделать?)

это как я использую SES:

$msg['Source'] = Config::get('mail.mailSource'); $msg['Destination']['ToAddresses'][] = $_GET['email']; $msg['Message']['Subject']['Data'] = "bla bla"; $msg['Message']['Body']['Text']['Data'] = 'bla bla'; $msg['Message']['Body']['Html']['Data'] = 'bla bla'; $ses = AWS::get('ses'); $ses->sendEmail($msg); 

Я посмотрел на AWS sdk в laravel и нашел там массив с требованиями для функции sendEmail, но нет никаких подсказок для файлов прикрепленных файлов

 'SendEmail' => array( 'httpMethod' => 'POST', 'uri' => '/', 'class' => 'Aws\\Common\\Command\\QueryCommand', 'responseClass' => 'SendEmailResponse', 'responseType' => 'model', 'parameters' => array( 'Action' => array( 'static' => true, 'location' => 'aws.query', 'default' => 'SendEmail', ), 'Version' => array(...... 

Solutions Collecting From Web of "aws: ses с прикрепленными файлами"

единственный способ, которым я нашел отправлять электронные письма с вложениями (используя SES SERVICE), – это метод SendRawEmail.

  $message = "To: ". $_GET['email'] ."\n"; $message .= "From: ". $msg['Source'] ."\n"; $message .= "Subject: Example SES mail (raw)\n"; $message .= "MIME-Version: 1.0\n"; $message .= 'Content-Type: multipart/mixed; boundary="aRandomString_with_signs_or_9879497q8w7r8number"'; $message .= "\n\n"; $message .= "--aRandomString_with_signs_or_9879497q8w7r8number\n"; $message .= 'Content-Type: text/plain; charset="utf-8"'; $message .= "\n"; $message .= "Content-Transfer-Encoding: 7bit\n"; $message .= "Content-Disposition: inline\n"; $message .= "\n"; $message .= "Dear new tester,\n\n"; $message .= "Attached is the file you requested.\n"; $message .= "\n\n"; $message .= "--aRandomString_with_signs_or_9879497q8w7r8number\n"; $message .= "Content-ID: \<77987_SOME_WEIRD_TOKEN_BUT_UNIQUE_SO_SOMETIMES_A_@domain.com_IS_ADDED\>\n"; $message .= 'Content-Type: application/zip; name="shell.zip"'; $message .= "\n"; $message .= "Content-Transfer-Encoding: base64\n"; $message .= 'Content-Disposition: attachment; filename="file.png"'; $message .= "\n"; $message .= base64_encode( $attachedFile ); $message .= "\n"; $message .= "--aRandomString_with_signs_or_9879497q8w7r8number--\n"; $sendMsg['RawMessage']['Data'] = (string)base64_encode($message); $sendMsg['RawMessage']['Source'] = $msg['Source']; $sendMsg['RawMessage']['Destinations'] = $_GET['email']; $ses->SendRawEmail($sendMsg); 

обратите внимание на следующие строки:

$ message. = 'Content-Disposition: attachment; имя файла = "file.png" ';

$ message. = base64_encode ($ attachFile);