PHPMailer\PHPMailer

PHPMailer::addEmbeddedImage()publicWP 1.0

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 in img tags, for example <img src="cid:mylogo">. Never use a user-supplied path to a file!

Method of the class: PHPMailer{}

No Hooks.

Return

true|false. True on successfully adding an attachment

Usage

$PHPMailer = new PHPMailer();
$PHPMailer->addEmbeddedImage(;

PHPMailer::addEmbeddedImage() code WP 6.4.3

public function addEmbeddedImage(
    $path,
    $cid,
    $name = '',
    $encoding = self::ENCODING_BASE64,
    $type = '',
    $disposition = 'inline'
) {
    try {
        if (!static::fileIsAccessible($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 = (string) 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;
}