You are here

class mime_mail in Backup and Migrate 8.2

Same name and namespace in other branches
  1. 8.3 includes/destinations.email.inc \mime_mail
  2. 6.3 includes/destinations.email.inc \mime_mail
  3. 6.2 includes/destinations.email.inc \mime_mail
  4. 7.3 includes/destinations.email.inc \mime_mail
  5. 7.2 includes/destinations.email.inc \mime_mail

Hierarchy

Expanded class hierarchy of mime_mail

File

includes/destinations.email.inc, line 88
Functions to handle the email backup destination.

View source
class mime_mail {
  var $parts;
  var $to;
  var $from;
  var $headers;
  var $subject;
  var $body;
  function mime_mail() {
    $this->parts = array();
    $this->to = "";
    $this->from = "";
    $this->headers = "";
    $this->subject = "";
    $this->body = "";
  }
  function add_attachment($message, $name = "", $ctype = "application/octet-stream", $encode = NULL, $attach = FALSE) {
    $this->parts[] = array(
      "ctype" => $ctype,
      "message" => $message,
      "encode" => $encode,
      "name" => $name,
      "attach" => $attach,
    );
  }
  function build_message($part) {
    $message = $part["message"];
    $message = chunk_split(base64_encode($message));
    $encoding = "base64";
    $disposition = $part['attach'] ? "Content-Disposition: attachment; filename={$part['name']}\n" : '';
    return "Content-Type: " . $part["ctype"] . ($part["name"] ? "; name = \"" . $part["name"] . "\"" : "") . "\nContent-Transfer-Encoding: {$encoding}\n{$disposition}\n{$message}\n";
  }
  function build_multipart() {
    $boundary = "b" . md5(uniqid(time()));
    $multipart = "Content-Type: multipart/mixed; boundary = {$boundary}\n\nThis is a MIME encoded message.\n\n--{$boundary}";
    for ($i = sizeof($this->parts) - 1; $i >= 0; $i--) {
      $multipart .= "\n" . $this
        ->build_message($this->parts[$i]) . "--{$boundary}";
    }
    return $multipart .= "--\n";
  }
  function send() {
    $mime = "";
    if (!empty($this->from)) {
      $mime .= "From: " . $this->from . "\n";
    }
    if (!empty($this->headers)) {
      $mime .= $this->headers . "\n";
    }
    if (!empty($this->body)) {
      $this
        ->add_attachment($this->body, "", "text/plain");
    }
    $mime .= "MIME-Version: 1.0\n" . $this
      ->build_multipart();
    mail($this->to, $this->subject, "", $mime);
  }

}

Members