That's because this is how embedded images work. The image is an attachment, it's just marked as inline, and has a content-id which can be used to target it from other elements in the MIME structure of the message. How this is displayed in email clients will vary. Some will display it only as referenced by the HTML, but others may show it as an attachment as well. But no matter what you do, the image will be part of the message. The only way for it not to be there is if you point at an external URL for the image, but then it's likely that the image will not be loaded at all.
The only other thing I can see you have wrong is that you have set the MIME type as png
; it should be image/png
. This might cause clients to mishandle the image. If you pass a filename with an extension, the last 3 params can be left off as they will be set automatically or are the same as defaults, like this:
$phpmailer->AddStringEmbeddedImage(base64_decode('...'), 'logo', 'logo.png');