PHPMailer attachment, doing it without a physical file

Karem picture Karem · Jun 22, 2012 · Viewed 19.4k times · Source

So:

// Setup mail class, recipients and body
$mailer->AddAttachment('/home/mywebsite/public_html/file.zip', 'file.zip');
The AddAttachment function has four arguments:

AddAttachment(PATH_TO_FILE, FILENAME, ENCODING, HEADER_TYPE)

I used to use xmail() and when I added a attachment here, I passed the filename and the content, that should be in it.

Like this:

$xmail->addAttachment('myamazingfile.pdf', $content);

How can I make it work the same way, so when i call AddAttachment() from the PHPmailer class, I can either pass the same or something like it, so I dont need to have a actual file on my server to send?

Answer

goat picture goat · Jun 22, 2012
AddStringAttachment($string,$filename,$encoding,$type)

eg

$mail = new PHPMailer();
$mail->AddStringAttachment($string,$filename,$encoding,$type);

http://phpmailer.github.io/PHPMailer/classes/PHPMailer.PHPMailer.PHPMailer.html#method_addStringAttachment