2010-11-22 19 views
1

Ok, le scénario est le suivant. J'ai un code php qui envoie des emails avec un fichier excel attaché. J'ai deux serveurs différents avec moi. Le premier, ive explosé un fichier Excel avec 100 + kb et son bien. Je l'ai essayé avec le deuxième serveur, même fichier. Mais ça a échoué. J'ai essayé de minimiser la taille du fichier à 10ko, et chanceux, le fichier a été envoyé. Maintenant, je suis un peu perplexe comment se fait le premier serveur peut envoyer plus d'une pièce jointe 100kb tandis que le second serveur ne peut pas. Y at-il quelque chose que j'ai besoin de configurer dans le php.ini?PHP: taille du fichier de pièce jointe

+0

Comment savez-vous que c'est votre serveur qui cause le problème, par opposition au serveur de destination? – Matthew

+0

parce que le premier serveur peut envoyer l'email avec 100kb. le deuxième serveur peut seulement envoyer moins de 70kb. – Mark

Répondre

1

Y a-t-il quelque chose dans les journaux d'erreurs PHP ou dans les journaux de messagerie du serveur? Je ne m'attendrais pas à ce que PHP rencontre des problèmes avec un si petit fichier, donc cela pourrait être un paramètre sur votre serveur de messagerie. Avez-vous vérifié votre dossier de courrier indésirable et que vous avez correctement tapé l'adresse e-mail de destination?

+0

yup. Tout est correct. Comme je l'ai dit, sur le premier serveur, le script fonctionne bien. quand j'ai transféré le fichier sur un serveur différent, c'est quand le problème de pièce jointe s'est produit. – Mark

+0

Windows ou Unix? Sous Unix, la fonction mail() appelle généralement un serveur de messagerie local pour gérer le courrier électronique, de sorte que différents serveurs Web auront des serveurs de messagerie locaux différents avec leurs propres paramètres. – thelem

+0

sont tous les deux dans unix. – Mark

6

La taille maximale est gérée par le serveur de messagerie.

Il n'y a pas de paramètres à modifier pour votre php.ini, si vous n'obtenez aucun avertissement concernant la limite de taille de la mémoire ou le temps d'exécution maximal atteint.

Virtuellement PHP est capable d'envoyer des emails même 100 Mo (si votre code n'utilise pas trop de mémoire). Après avoir vérifié que le serveur de courrier électronique l'accepte, vous devez vous assurer que le serveur de courrier électronique l'accepte. Je pense que la plupart des serveurs de messagerie sont configurés pour gérer 10 Mo de courrier électronique. Vous devez également garder à l'esprit que ce fichier va être encodé en base64 pour être joint avec un email. L'encodage Base64 rendrait votre fichier 33% plus lourd. Ainsi, un fichier de 10 Mo attaché à un e-mail génère en réalité un e-mail de 13,3 Mo.

Je pense que la première chose à vérifier serait les journaux du serveur de messagerie.

+0

La taille maximale est gérée par le serveur de messagerie. -> Y at-il un moyen que je pourrais le remplacer avec PHP? – Mark

+0

@Mark: non car c'est un paramètre du serveur de messagerie. Quel MTA utilisez-vous? – RageZ