Jump to:

22976 Posts in 11620 Topics by 2826 members

General Questions

SilverStripe Forums » General Questions » Sending multipart mails?

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

Page: 1
Go to End
Author Topic: 483 Views
  • danzzz
    Avatar
    Community Member
    175 Posts

    Sending multipart mails? Link to this post

    hi,

    with

    $themail->send();

    I can send HTML mails, with

    $themail->sendPlain();

    textmails. But how to send multipart mails? I want to add plaintext part aswell the html part.
    For example, if some mail clients dont allow htmls mails they only show plain text part of the mail.
    With php.pear's mailer class for example I can attach 2 templates ...

    And I have problems with (setTemplate) when using "sendPlain" (It sends only whats in $body variable).
    Isnt it possible to use a template when using sendPlain()?

  • swaiba
    Avatar
    Forum Moderator
    1769 Posts

    Re: Sending multipart mails? Link to this post

    good question...

    I do this...

    $email->plaintext_body = strip_tags($email->body);

    ...I am very interested in other answer though...

  • danzzz
    Avatar
    Community Member
    175 Posts

    Re: Sending multipart mails? Link to this post

    hi

    yes, I did it also a such way:

    first I generate an array with template data, then I transform the array to an object and then render it with
    the text part and html part. and then I also use the $plaintext_body var to add the plaintext template.

    it works like that for me

    $template_data = array(
             'ActivationLink' => Director::absoluteURL(Controller::join_links ('a',$this->Member->ID,"/{$this->Member->validationkey}")),
             'Personalisation' => 'Ser Anton',
           );

           $arrayData = new ArrayData($template_data);
           $htmltemplate = $arrayData->renderWith('ReActivationMail');
           $texttemplate = $arrayData->renderWith('ReActivationMailText');

           $reactivationmail = new Email(
             $from = 'Sender <service@sender.com>',
             $to = $data['Email'],
             $subject = 'Sender Aktivierungsmail',
             $body = $htmltemplate,
             $plaintext_body = $texttemplate
           );

           $reactivationmail->send();

    483 Views
Page: 1
Go to Top

Want to know more about the company that brought you SilverStripe? Then check out SilverStripe.com

Comments on this website? Please give feedback.