Envoyer un email avec pièce jointe via PHPMailer
Je suis en train de préparer à créer une page de formulaire pour un site web qui va nécessiter beaucoup de champs pour l'utilisateur à remplir et qui sera envoyé à l'adresse email indiqué.
Jusqu'à présent, j'ai créé un mannequin php e-mail de la page qui reçoit votre Message, 1 pièce jointe, et de l'adresse de Messagerie du Destinataire à l'aide de Google SMTP.
Voici mon code pour les uploadtest.html:
<body>
<h1>Test Upload</h1>
<form action="email.php" method="get">
Message: <input type="text" name="message">
Email: <input type="text" name="email"><br>
Attach File: <input type="file" name="file" id="file">
<input type="submit">
</form>
</body>
uploadtest.html est ce que l'utilisateur va voir
Voici le code email.php:
<?php
require("class.phpmailer.php");
$mail = new PHPMailer();
$recipiant = $_GET["email"];
$message = $_GET["message"];
$mail->IsSMTP(); //telling the class to use SMTP
$mail->SMTPAuth = true; //SMTP authentication
$mail->Host = "smtp.gmail.com"; //SMTP server
$mail->Port = 465; //SMTP Port
$mail->SMTPSecure = 'ssl';
$mail->Username = "[email protected]"; //SMTP account username
$mail->Password = "xxxxxxxx"; //SMTP account password
$mail->AddAttachment($_FILES['tmp_name']); //****HERE'S MY MAIN PROBLEM!!!
$mail->SetFrom('[email protected]', 'CiniCraft.com'); //FROM
$mail->AddReplyTo('[email protected]', 'Dom'); //Reply TO
$mail->AddAddress($recipiant, 'Dominik Andrzejczuk'); //recipient email
$mail->Subject = "First SMTP Message"; //email subject
$mail->Body = $message;
if(!$mail->Send()) {
echo 'Message was not sent.';
echo 'Mailer error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent.';
}
?>
Donc, à partir de ce que je peux dire ici, PHPMailer est AddAttachment() la méthode prend en paramètre l'URL du fichier de RÉPERTOIRE que vous voulez ci-joint. Et c'est là mon principal problème est.
Quel serait le nom de la variable qui permettrait d'obtenir l'emplacement de mon fichier (dir/upload.jpg) que j'ai téléchargé j'ai donc pu l'utiliser comme paramètre dans la AddAttachment() la méthode?
aussi, vous pouvez supprimer vos renseignements personnels à partir de votre code.
$mail->AddAttachment($_FILES['tmp_name']);
devrait être $mail->AddAttachment($_FILES['file']['tmp_name']);
OriginalL'auteur Matt Andrzejczuk | 2013-07-23
Vous devez vous connecter pour publier un commentaire.
Non, il ne prend pas les Url, ou des répertoires. Il prend un chemin direct vers un FICHIER.
par exemple
Le chemin est auto-explicatif. Le
name_of_file_in_email
vous permet de renommer " le dossier, de sorte que vous pouvez charger un fichier nommé "foo.exe" sur votre serveur, il peut apparaître comme "bar.jpg" dans l'e-mail que le client reçoit.Votre problème est que vous tentez de joindre un fichier à télécharger, mais l'utilisation de la mauvaise source. Il devrait être
Note le nom du champ de la relation de la variable $_FILES.
OriginalL'auteur Marc B
Votre
<form>
balise doit spécifier leenctype
attribut de la sorte :OriginalL'auteur Arvind
Ce sera envoyer comme ça qu'avec PHPMailer Classe
s'il vous plaît essayez avec cette
C'est le code fonctionne bien.
OriginalL'auteur Attarisoft