7
votes

Code allumeur -> Joindre un email

Comment utilisez-vous l'e-mail-> attacher la fonction?

Je ne peux pas comprendre ce qui se passe, cos lorsque je mets le code pour email-> attacher le mesage est entré en blanc (le corps du courrier) et il y a Aucun attachement. p>

Si je supprimais cette ligne de code, tout revient à la normale .. p>

merci p>

mon contrôleur (sendmail.php) p >

    <?php
    echo form_open_multipart('davidslv/index.php/sendmail');
?>
          <label for="nome">nome</label>
          <input type="text" name="nome" id="nome" required />

          <label for="email">email</label>
          <input type="text" name="email" id="email" required />

          <label for="assunto">assunto</label>
          <select name="motivo">
               <option value="motivo1">motivo1</option>
               <option value="motivo2">motivo2</option>
               <option value="motivo3">motivo3</option>
          </select>

          <p> <label for="mensagem">mensagem</label>
          <textarea name="mensagem" id="mensagem" rows="8" cols="30" required></textarea>
          </p>

          <label for="upload">documento</label>
          <input type="file" id="upload" name="upload" size="18"/>
          <input type="submit" id="enviar" name="enviar" value="Enviar!" />

     </form>


3 commentaires

Vous devez clarifier exactement ce que vous essayez de faire, joindre un JPG / PDF, est le fichier téléchargé par un utilisateur? Est-ce dans un répertoire comme /home/bob/photo.jpg? etc ... besoin de plus de détails homme ..


En outre, que diriez-vous de poster le code que vous avez jusqu'à présent afin que nous puissions voir ce que vous faites potentiellement mal.


Bonjour, j'ai édité mon post pour être plus clair. L'intention est que tout utilisateur puisse m'envoyer un courrier électronique, mais le corps (mensagem) est vide et il n'y a pas d'attachement


5 Réponses :


2
votes

$ this-> email-> joindre ()

vous permet d'envoyer une pièce jointe. Mettre le chemin de fichier / nom dans la première paramètre. Remarque: utilisez un chemin de fichier, pas une URL. Pour utiliser plusieurs pièces jointes, utilisez la fonction plusieurs fois. Pour Exemple: xxx

Classe de messageriedicate


1 commentaires

J'ai lu la documentation, c'est facile à faire, mais lorsque vous souhaitez que un utilisateur vous envoie un mail, c'est une histoire différente.



19
votes

Vous ne pouvez pas joindre directement à un fichier du champ de téléchargement de votre formulaire à un email. Vous ne pouvez joindre que des fichiers à votre courrier électronique à partir de votre serveur. Vous devez donc télécharger le fichier dans le formulaire avec la bibliothèque de téléchargement CEI: $ this-> upload-> do_upload () sur votre serveur dans un répertoire. La bibliothèque de téléchargement doit être configurée, quels types de fichiers sont autorisés, etc. Si le téléchargement a réussi, la fonction DO_UPLOAD renvoie des données approfondies sur l'endroit où le fichier est stocké. Vous pouvez utiliser l'index "Full_Path" de la matrice pour joindre ce fichier à l'e-mail. Ensuite, envoyez le courrier. Après cela, vous pouvez supprimer le fichier de votre serveur. Voici quelques fragments de code qui pourrait aider.

$this->load->library('upload');

if($_FILES['upload']['size'] > 0) { // upload is the name of the file field in the form

$aConfig['upload_path']      = '/someUploadDir/';
$aConfig['allowed_types']    = 'doc|docx|pdf|jpg|png';
$aConfig['max_size']     = '3000';
$aConfig['max_width']        = '1280';
$aConfig['max_height']       = '1024';

$this->upload->initialize($aConfig);

  if($this->upload->do_upload('upload'))
  {
    $ret = $this->upload->data();
  } else {
    ...
  }

  $pathToUploadedFile = $ret['full_path'];
  $this->email->attach($pathToUploadedFile);
  ...
  $this->email->send();
  ...
}
...


1 commentaires

Merci Richard, votre explication était très bonne. Merci beaucoup :)



1
votes

Ceci est absolument juste code s'il vous plaît essayez xxx


1 commentaires

Salut ami Le code ci-dessus résoudra votre problème. Le même problème était que je me trouvais aussi. C'est parce que le nom du fichier que vous avez enregistré dans le dossier est différent, car vous le compromettez le code ci-dessus le résoudra car il prend le chemin correct de votre dossier de téléchargements. ..pls Notez que le dossier des téléchargements doit être à root ....



1
votes

Étape 1: Vous ne pouvez pas attacher directement un fichier dans le champ de téléchargement de votre formulaire à un email. Vous ne pouvez joindre que des fichiers à votre courrier électronique à partir de votre serveur. Vous devez donc télécharger le fichier dans le formulaire avec la bibliothèque de téléchargement CEI:

$ ceci-> upload-> do_upload () code> à votre serveur dans un répertoire. p>

étape 2: p> xxx pré>

Étape 3: Inclure simplement P>

$this->email->attach($file_path);
$this->email->send();


0 commentaires

1
votes

Ceci est une mise à jour tardive, mais cela pourrait être utile. de
Il a été dit deux fois

"Vous ne pouvez pas attacher directement un fichier à partir du champ de téléchargement de votre formulaire à un email "

. Cependant, cela fonctionne bien dans CodeDigniter 3.0 xxx

(cependant, l'e-mail n'est pas envoyé et aucune erreur n'est affichée, s'il y a deux fichiers avec le même nom)


0 commentaires