Phpmailer pour mail avec pièce jointe
Posté : 17 juil. 2019, 16:50
Bonjour/Bonsoir,
Après avoir essayer en vain de m'en passer pour envoyer des mails avec pièces jointe, j'ai décidé d'utiliser phpmailer pour un mail post formulaire. Voici le code :
Malheureusement, je n'ai le droit qu'à un rafraîchissement de page..! Ça fait quelques temps que je suis sur ce soucis pourtant avec mail sans pièce jointe pas de soucis.. !
Si quelqu'un arrive à voir d'où peut venir le soucis et me le dire, ça m'aiderait beaucoup. En attendant, je cherche de mon côté !
Après avoir essayer en vain de m'en passer pour envoyer des mails avec pièces jointe, j'ai décidé d'utiliser phpmailer pour un mail post formulaire. Voici le code :
<?php
use PHPMailer\PHPMailer\PHPMailer;
if (isset($_POST['sendmail'])) {
if (array_key_exists('userfile', $_FILES)) {
$uploadfile = tempnam(sys_get_temp_dir(), hash('sha256', $_FILES['userfile']['name']));
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
// Upload handled successfully
// Now create a message
require '../phpmailer/src/PHPMailer.php';
$mail = new PHPMailer;
$mail->setFrom($_POST['email'], $_POST['name']);
$mail->addAddress('[email protected]');
$mail->Subject = $_POST['offre'];
$mail->Body = $_POST['message'];
// Attach the uploaded file
$mail->addAttachment($uploadfile, 'My uploaded file');
if (!$mail->send()) {
$msg .= "Mailer Error: " . $mail->ErrorInfo;
} else {
$msg .= "Message sent!";
}
} else {
$msg .= 'Failed to move file to ' . $uploadfile;
}
}
}
?>
<form action="testmail.php" method="post">
<table>
<tr>
<td><label for="nom">Votre nom<div style="color:red;display:inline;">*</div> :</label></td>
<td><input type="text" name="name" required/></td>
</tr>
<tr>
<td><label for="email">Votre E-mail<div style="color:red;display:inline;">*</div> :</label></td>
<td><input type="email" name="email" required/></td>
</tr>
<tr>
<td>Votre offre<div style="color:red;display:inline;">*</div> :</td>
<td><input type="text" name="offre" required/></td>
</tr>
<tr>
<td><label for="message">Vos motivations<div style="color:red;display:inline;">*</div> :</label></td>
<td><textarea name="message" rows="2" cols="50" required></textarea></td>
</tr>
<tr>
<td><label for='userfile'>Ajouter une pièce jointe<span></span></label></td>
<td><input type="file" name="userfile" id="userfile"></td>
</tr>
<tr>
<td></td>
<td><input name="sendmail" type="submit" value="Envoyer"></td>
</tr>
</table>
</form>
(J'ai pris le code PHP directement dans les exemples de phpmailer, au passage. je n'ai fais que changer quelques lignes pour que ça colle avec mon formulaire ainsi que la ligne "require" qu'il pointait vers un dossier "vendor" que je n'ai pas.)Malheureusement, je n'ai le droit qu'à un rafraîchissement de page..! Ça fait quelques temps que je suis sur ce soucis pourtant avec mail sans pièce jointe pas de soucis.. !
Si quelqu'un arrive à voir d'où peut venir le soucis et me le dire, ça m'aiderait beaucoup. En attendant, je cherche de mon côté !