Usando o swiftmailer e enviando anexos

Eu estou tentando modificar um script para enviar um email com um anexo. Ele funciona agora, mas todos os campos são necessários e eu estava me perguntando o que estou perdendo para fazer com que os campos não sejam necessários.

<?php
if (($_POST)) {

$success = $error = false;

$post = new stdClass;

foreach ($_POST as $key => $val)
    $post->$key = trim(strip_tags($_POST[$key]));

    $dir = dirname(__FILE__);

    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('Imperial Order') // Message subject
                   ->setTo(array($post->email => $post->name, '[email protected]' => 'Janet McCauley')) // Array of people to send to
                   ->setFrom(array('[email protected]' => 'Imperial Order'))
                   ->setBody($html_message, 'text/html') // Attach that HTML message from earlier
                   ->attach(Swift_Attachment::fromPath($_FILES['attachment']['tmp_name'])->setFilename($_FILES['attachment']['name']));

    // Send the email, and show user message
    if ($mailer->send($message))
        $success = true;
    else
        $error = true;      
}
?>

Eu acredito que tem algo a ver com o foreach, mas se eu tentar retirá-lo, ele quebra todo o código. Se alguém puder dar uma ajuda, seria óptimo. A razão pela qual estou retirando a validação é porque estou querendo fazer isso no lado do cliente, em vez de no lado do servidor.

questionAnswers(1)

yourAnswerToTheQuestion