Urgent: l'envoi d'email avec 24Mo de pièces jointes plante!
Author: Jean-Paul V.Je développe un site pour un concours international de photo avec websitex5 v12 pro. J'ai créé une page d'inscription au concours grâce au formulaire email. Dans ce formulaire, l'auteur peut mettre en pièces jointes jusqu'à 12 images jpg, chaque fichier pouvant atteindre une taille d'environ 2Mo.
C'est là le problème: si l'auteur envoie 12 photos, l'email a une taille de 24Mo environ, et l'envoi du formulaire plante avec comme message:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 25552209 bytes) in /home/sprphoto/www/concours/res/class.smtp.php on line 611
Je ne crois avoir vu une telle limite dans la doc, et donc, c'est un bug.
J'ai fait de nombreux essais pour vérifier que c'est bien le logiciel qui est en cause et non l'hébergeur. L'envoi des 12 images par les logiciels habituels (outlook, thunderbird, webmail) se passe bien et les images sont bien reçues à l'adresse destinataire malgré les 24Mo. Par ailleurs, j'ai déplacé mon site de ovh chez un autre hébergeur (infomaniak) dont je connais bien les limites, et websitex5 a planté de la même façon.
C'est URGENT: le concours va bientôt commencé, et j'ai absolument besoin de trouver une solution. Quelqu'un peut-il m'aider? Si je ne trouve pas de solution dans les tous prochains jours, cela peut remettre en cause le choix de websitex5.
Merci d'avance!
Hello Jean-Paul,
The limit of the maximum size allowed is not set in the program but is the limit set from the hosting provider and probably they do not allow to send so big emails from the website. You need to contact the hosting support to ask if it's possible to increase the maximum upload limit and in case it can be done how you have to proceed or if they can do it for you.
Many thanks!
***** Google Translation:
Bonjour Jean-Paul,
La limite dela taille maximale autoriséeest pas définiedans leprogramme, maisestla limite fixéepar le fournisseurd'hébergementet probablementilsne permettent pasd'envoyerdes e-mailssi grandsur le site.Vous avez besoin decontacter le supportd'hébergement pourdemanders'il estpossible d'augmenterla limite maximalede téléchargement etau cas où ilpeut être faitcomment vousdevezprocéderous'ils peuvent le fairepour vous.
Merci beaucoup!
Author
Bonjour,
Merci pour la réponse, mais la discussion avec l'hébergeur risquait d'être trop long et j'ai donc cherché une autre solution.
En fait, le traitement du formulaire email peut faire autre chose que d'envoyer l'email:
J'ai essayé la solution mysql: ça plante aussi avec les 24Mo de pièces jointes! Ce qui est bizarre, puisqu'il n'est alors pas nécessaire de construire le message email. Les données du formulaire sont effectivement envoyées vers mysql (après préparation correcte de mysql), et les fichiers en pièces jointes se retrouvent dans le répertoire cité comme ayant des droits élargies.
J'ai ensuite essayé l'envoi du formulaire à un script de traitement php, et là ça marche! Bizarrement, je retrouve bien les données envoyés par POST avec $_POST, mais les fichiers en pièces jointes sont dans un autre répertoire trouvé avec $_FILES, et nécessitent ainsi un déplacement (move_uploaded_file) dans un autre répertoire. Mon script php envoie ensuite un email au destinataire avec l'adresse des fichiers à télécharger, et non les fichiers eux-mêmes. Ça a d'ailleurs un gros avantage: ce script envoie un accusé de réception à l'expéditeur seulement si les données ont été reçues. Ce n'est pas le cas dans la solution d'envoi email par websitex5: le plantage de l'email n'empêche pas l'envoi de l'accusé de réception, ce qui n'est pas correct!
Bref, j'ai trouvé une solution, mais je ne suis tout de même pas content: la documentation de websitex5 est beaucoup trop succincte sur ces sujets, ce qui m'a obligé à tâtonner de nombreuses heures pour comprendre ce que les programmeurs de websitex5 ont prévu. Il n'était pas compliqué d'ajouter sur ces sujets complexes quelques phrases de plus avec des exemples, disons la valeur d'1/2 page A4 sur chacun des 2 sujets cités ici.