Отправка письма с приложением - PullRequest
5 голосов
/ 22 августа 2010

У меня есть пользовательская форма (созданная с помощью API форм), которая должна отправлять загруженный файл по электронной почте. Текущий обработчик отправки формы отправляет электронное письмо без вложения, используя drupal_mail () .

Так что я ищу решение для правильной отправки электронной почты с вложением от Drupal. Mime Mail кажется излишним, потому что HTML-почта, шаблоны и другие ее функции не требуются. Но единственная другая альтернатива, которую я вижу, это установить соответствующие заголовки и сериализовать прикрепленный файл в теле письма при обработке почты в моей реализации hook_mail () .

Я что-то пропустил? Есть какой-нибудь модуль, чтобы справиться с этим?

Ответы [ 5 ]

3 голосов
/ 22 августа 2010

Mimemail - самое простое решение здесь.Будь это перебор или нет, это позволит вам сделать это с помощью одного вызова функции.

Если вы настаиваете, возможно, ваш домашний отправитель вложений : base64 закодирует ваше вложение (s), добавьте их в тело письма, добавьте правильные заголовки, и все готово.

1 голос
/ 31 декабря 2010

Вы можете использовать mime mail и принудительно отправлять тело сообщения в текстовом формате.Вот выдержка из файла readme модуля:

ИСПОЛЬЗОВАНИЕ Этот модуль может потребоваться другим модулям, но сам по себе он не очень полезен.После установки любой модуль может отправлять сообщения, вызывая функцию mimemail ():

$sender - a user object, text email address or an array with name, mail
$recipient - a user object, text email address or an array with name, mail
$subject - subject line
$body - body text in HTML format
$plaintext - boolean, whether to send messages in plaintext-only (default FALSE)
$headers - a keyed array with headers (optional)
$text - plaintext portion of a multipart e-mail (optional)
$attachments - array of arrays with the file's path, MIME type (optional)
$mailkey - message identifier

return - an array containing the MIME encoded message

Главное - установить для аргумента $ plaintext значение TRUE.Теперь ты можешь взять свой пирог и съесть его тоже.

0 голосов
/ 02 апреля 2013

Вы всегда можете взглянуть на модуль Swift Mailer, который позволяет отправлять электронные письма в формате HTML (MIME), электронные письма со встроенными изображениями и электронные письма с вложениями.Он также может автоматически генерировать простые текстовые версии на основе версии электронной почты в формате HTML, что в конечном итоге позволит почтовому клиенту пользователя отображать предпочтительную версию (HTML или простой текст).

SwiftМодуль почтовой программы доступен на http://drupal.org/project/swiftmailer.

Для записи: я являюсь автором и сопровождающим модуля.

0 голосов
/ 28 августа 2010

Вы можете использовать Zend Framework.

function sendEmail($params){
    ini_set('include_path', 'inc/');
    require_once ('inc/Zend/Mail.php');

    $mail = new Zend_Mail();

    $mail->setSubject( $params['subject'] );

    $mail->setBodyText( $params['bodyText'] );
    $mail->setBodyHtml( $params['bodyHtml'] );

    $mail->setFrom( $params['fromEmail'], $params['fromName'] );
    $mail->addTo( $params['toEmail'], $params['toName'] );

    // Finally, add an attachment

    assert( file_exists($params['attachFile']) );

    $at = $mail->addAttachment(file_get_contents($params['attachFile']));
    $at->type        = $params['attachType'];
    $at->disposition = Zend_Mime::DISPOSITION_ATTACHMENT;
    $at->filename    = $params['attachName'];

    $mail->send();
}
0 голосов
/ 22 августа 2010

Модуль Webform позволяет создавать форму и имеет параметр файла, который можно использовать в качестве вложения. Все доступные компоненты формы перечислены на странице руководства модуля .

После установки Webform будет отображаться как тип контента. После того, как вы сохранили основы, такие как заголовок и электронное письмо по адресу, у вас будет возможность добавить необходимые компоненты формы.

Добавьте компонент типа «файл», установив флажок «электронная почта» (получателю), и вы сможете настроить разрешенные типы файлов, расширения, размеры и папку для загрузки.

...