PHP Developers Network
http://forums.devnetwork.net/

Trouble getting my file attachment to work with Swiftmailer
http://forums.devnetwork.net/viewtopic.php?f=52&t=133704
Page 1 of 1

Author:  erhilse [ Thu Dec 29, 2011 11:02 am ]
Post subject:  Trouble getting my file attachment to work with Swiftmailer

I just started using Swift Mailer and I've ran into a problem that I can't seem to figure out so maybe someone can help. I have a form that takes all the info and puts it into a pdf and then uses swift mailer to attach the pdf and email it. I got that part to work. I needed to add a upload button to my form so the user could upload either a jpeg, png, pdf, doc, or gif and I just want to attach that to the email with the pdf. I can get it to attach but everytime I get the email It says its corrupted. I read somewhere that something called magicquotes could be causing it but I dont know what that is. Can anyone help?
Syntax: [ Download ] [ Hide ]
<?php
if (!empty($_POST)) {

        $success = $error = false;

        $post = new stdClass;
       
        $file = $_FILES["attachment"]["tmp_name"]; //"attachment" is the name of your input field, "tmp_name" gets the temporary path to the uploaded file.
       
        $filename = $_FILES["attachment"]["name"]; //"name" gets the filename of the uploaded file.                    
       
        foreach ($_POST as $key => $val)
                $post->$key = trim(strip_tags($_POST[$key]));
               
        if (empty($post->name) OR empty($post->email))
                $error = true;
       
        else {
               
                $dir = dirname(__FILE__);
               
                ob_start();
                require_once($dir.'/pdf.php');
                $pdf_html = ob_get_contents();
                ob_end_clean();
               
                require_once($dir.'/dompdf/dompdf_config.inc.php');
               
                $dompdf = new DOMPDF();
                $dompdf->load_html($pdf_html);
                $dompdf->render();
                $pdf_content = $dompdf->output();
               
                ob_start();
                require_once($dir.'/html.php');
                $html_message = ob_get_contents();
                ob_end_clean();
               
                require_once($dir.'/swift/swift_required.php');

                $mailer = new Swift_Mailer(new Swift_MailTransport());

                $message = Swift_Message::newInstance()
                                       ->setSubject('Order Entry') // Message subject
                                           ->setTo(array('ehilse@paifashion.com' => 'Eric Hilse')) // Array of people to send to
                                           ->setFrom(array('no-reply@paifashion.com' => 'PAi Order Entry'))
                                           ->setBody($html_message, 'text/html') // Attach that HTML message from earlier
                                           ->attach(Swift_Attachment::newInstance($pdf_content, 'design.pdf', 'application/pdf')) // Attach the generated PDF from earlier
                                           ->attach(Swift_Attachment::newInstance ($file, $filename));
                // Send the email, and show user message
                if ($mailer->send($message))
                        $success = true;
                else
                        $error = true;
               
        }

}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <title>PAi Cap &amp; Tee Art Pack Order Form</title>
        <link href="css/style.css" rel="stylesheet" type="text/css" />
</head>

<body>

        <div id="container">
                                <div id="logo">
                                        <img src="images/pailogo.png" id="logo" />
                                </div>
                        <h1><abbr title="Paramount Apparel International">PAi</abbr> Cap &amp; Tee Art Pack Order Form</h1>
       
                        <?php if ($success) { ?>
                                <div class="message success">
                                        <h4>Congratulations! It worked! Your order has been sent.</h4>
                                </div>
                        <?php } elseif ($error) { ?>
                                <div class="message error">
                                        <h4>Sorry, an error occurred. Try again!</h4>
                                </div>
                        <?php } ?>
               
                        <form method="post" action="" enctype="multipart/form-data">
                                <fieldset>
                                        <legend>Please fill in the following form:</legend>
                                                <label for="name">Your Name:<span class="required">*</span></label>
                                                <input type="text" name="name" id="name" class="input" />
                       
                                                <label for="email">Your Email:<span class="required">*</span></label>
                                                <input type="text" name="email" id="email" class="input" />            
                       
                        <br />
                       
                                                <label for="artpacknumber">Art Pack Number:<span class="required">*</span></label>
                                                <input type="text" name="artpacknumber" id="artpacknumber" class="input" />                    
                                               
                                                <label for="language">New Or Revise?<span class="required">*</span></label>
                                                <select name="language" id="language">
                                                        <option value="NEW">New</option>
                                                        <option value="REVISE">Revise</option>
                                                </select>
                                               
                        <br /> 
                                       
                                                <label for="duedate">Due Date:<span class="required">*</span></label>
                                                <input type="text" name="duedate" id="duedate" class="input" />
                       
                                                <label for="dateentered">Date Entered:<span class="required">*</span></label>
                                                <input type="text" name="dateentered" id="dateentered" class="input" />
                       
                        <br />
                       
                                                <label for="designname">Design Name:<span class="required">*</span></label>
                                                <input type="text" name="designname" id="designname" class="input" />
                       
                        <br />
                       
                                                <label for="customer">Customer:<span class="required">*</span></label>
                                                <input type="text" name="customer" id="customer" class="input" />
                       
                                                <label for="account">Account:<span class="required">*</span></label>
                                                <input type="text" name="account" id="account" class="input" />
                       
                        <br />
                       
                                                <label for="salesrep">Sales Rep:<span class="required">*</span></label>
                                                <input type="text" name="salesrep" id="salesrep" class="input" />
                       
                                                <label for="extension">Extension:<span class="required">*</span></label>
                                                <input type="text" name="extension" id="extension" class="input" />
                       
                        <br />
                       
                                                <label class="commentslabel" for="comments">Comments:<span class="required">*</span></label>
                                                <textarea name="comments" id="comments" rows="4" cols="40"></textarea>
                       
                        <br />
                       
                                                <label for="attachment">File Upload<br />.</label>
                                                <input name="attachment" id="attachment" type="file">
                                               
                        <br />                 
                       
                                                <input type="submit" class="submit" id="submit" value="Submit" />
                                               
                        </fieldset>
                       
                </form>
       
        </div>

</body>
</html>

Page 1 of 1 All times are UTC - 5 hours
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/