public function PHPMailer::addEmbeddedImage

5.x PHPMailer.php public PHPMailer::addEmbeddedImage( $path, $cid, $name = '', $encoding = self::ENCODING_BASE64, $type = '', $disposition = 'inline' )

Add an embedded (inline) attachment from a file. This can include images, sounds, and just about any other document type. These differ from 'regular' attachments in that they are intended to be displayed inline with the message, not just attached for download. This is used in HTML messages that embed the images the HTML refers to using the $cid value. Never use a user-supplied path to a file!

Parameters

string $path Path to the attachment:

string $cid Content ID of the attachment; Use this to reference: the content when using an embedded image in HTML

string $name Overrides the attachment name:

string $encoding File encoding (see $Encoding):

string $type File MIME type:

string $disposition Disposition to use:

Return value

bool True on successfully adding an attachment

Throws

Exception

1 call to PHPMailer::addEmbeddedImage()
PHPMailer::msgHTML in inc/PHPMailer/src/PHPMailer.php
Create a message body from an HTML string. Automatically inlines images and creates a plain-text version by converting the HTML, overwriting any existing values in Body and AltBody. Do not source $message content from user input! $basedir is prepended…

File

inc/PHPMailer/src/PHPMailer.php, line 3398

Class

PHPMailer
PHPMailer - PHP email creation and transport class.

Namespace

PHPMailer\PHPMailer

Code

public function addEmbeddedImage(
$path, 
$cid, 
$name = '', 
$encoding = self::ENCODING_BASE64, 
$type = '', 
$disposition = 'inline'
) {
  try {
    if (!static::isPermittedPath($path) || !@is_file($path)) {
      throw new Exception($this->lang('file_access') . $path, self::STOP_CONTINUE);
    }

    // If a MIME type is not specified, try to work it out from the file name
    if ('' == $type) {
      $type = static::filenameToType($path);
    }

    if (!$this->validateEncoding($encoding)) {
      throw new Exception($this->lang('encoding') . $encoding);
    }

    $filename = static::mb_pathinfo($path, PATHINFO_BASENAME);
    if ('' == $name) {
      $name = $filename;
    }

    // Append to $attachment array
    $this->attachment [] = [
      0 => $path,
      1 => $filename,
      2 => $name,
      3 => $encoding,
      4 => $type,
      5 => false, // isStringAttachment
      6 => $disposition,
      7 => $cid,
    ];
  }
  catch (Exception $exc) {
    $this->setError($exc->getMessage());
    $this->edebug($exc->getMessage());
    if ($this->exceptions) {
      throw $exc;
    }

    return false;
  }

  return true;
}