Вложение PHPMailer, делая это без физического файла

Так:

// 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) 

Я использовал xmail (), и когда я добавил сюда вложение, я передал имя файла и содержимое, которое должно быть в нем.

Как это:

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

Как я могу заставить его работать одинаково, поэтому, когда я вызываю AddAttachment() из класса PHPmailer, я могу либо передать то же, либо что-то вроде этого, поэтому мне не нужно иметь фактический файл на моем сервере для отправки?

 AddStringAttachment($string,$filename,$encoding,$type) 

например

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

http://phpmailer.worxware.com/index.php?pg=tutorial#3

поскольку функция AddAttachment () ожидает путь, а не байтовые данные, вы должны сделать php-преобразование в функцию temp-файла, а затем передать эту строку пути в вашу функцию

 $prefix = 'ConvertMediaArgs_'.time().'_'; $tempfile = tempnam( $this->tempdir, $prefix ); // Args file create failure: kill script with TEMPFILEFAIL error if($tempfile === false) { die('file could not be created'); } // Write args as Key=Val (\n) to file $fullpath = $this->tempdir.$tempfile; $content = $someContent // <---------------- this is your file's data $handle = fopen( $tempfile, "w"); fwrite( $handle, $content ); // $fullpath is the path you wanna pass to your function $xmail->addAttachment( $fullpath, $content );