Page 1 of 1

Attach image to email without saving to disk

Posted: Tue May 15, 2007 12:23 pm
by heals1ic
Does anyone know of a way to attach jpg image created in php without having to save the file to the server before attaching it?

I am using this MIME code to attach the image to an email -

Code: Select all

for($i=0;$i<$max;$i++)
            {
                $file = fread(fopen($this->attachment[$i], "r"), filesize($this->attachment[$i]));
                $this->header .= "--".$this->boundary."\n";
                $this->header .= "Content-Type: application/x-zip-compressed; name=".$this->attachment[$i]."\n";
                $this->header .= "Content-Transfer-Encoding: base64\n";
                $this->header .= "Content-Disposition: attachment; filename=".$this->attachment[$i]."\n\n";
                $this->header .= chunk_split(base64_encode($file))."\n";
                $file = "";
            }
Can I attach the image stored as a variable for instance?

Posted: Tue May 15, 2007 12:44 pm
by stereofrog
For example

Code: Select all

ob_start();
imagejpeg($image_resource, '', 70);
$image_data = ob_get_clean();

$header .= chunk_split(base64_encode($image_data));

Posted: Tue May 15, 2007 1:34 pm
by RobertGonzalez
Use Swiftmailer. It has a feature like that built in to it and works like a charm.