Mail + pièce jointe en PHP avec fonction PHP mail()

Mail + pièce jointe en PHP avec fonction PHP mail() - PHP - Programmation

Marsh Posté le 13-10-2006 à 12:21:37    

Bonjour à tous,
 
après une matinée a rechercher sur divers forum un problème similaire au mien, et sans avoir trouvé de réponse, je me décide a poster ma question.
 
Je travaille depuis juin sur un site, existant avant moi, sur lequel des fichiers PDF sont envoyés en pièce jointe de mails en PHP avec la fonction mail().
 
Afin de permettre a ma cliente de savoir si les mails envoyés arrivent bien a destination (nous avons eu un soucis avec le serveur SMTP et quelques mails ne sont jamais arrivés) ma cliente m'a demandé de mettre en place une solution pour vérifier l'arrivée des mails sur la boite du destinataire.
J'ai donc inséré

Code :
  1. "Delivery-Notification-To:sonmail@fai.fr"

dans les headers du code d'envoi du mail.
Depuis ce jour, les messages arrivent bien, le statut de délivrance ne fonctionne pas, et par contre mes pièces jointes n'arrivent plus jointes mais dans le corps du mail en crypté.
J'ai donc supprimé le

Code :
  1. "Delivery-Notification-To:sonmail@fai.fr"

des header, j'ai remis la version antérieure qui fonctionnait très bien, et .... j'ai toujours le problème !
Je ne comprends donc pas ce qui se passe et me trouve complètement démunies pour régler le problème.
 
Auriez vous une idée d'une direction dans laquelle chercher ???
Mille merci par avance de votre aide
3nityy

Reply

Marsh Posté le 13-10-2006 à 12:21:37   

Reply

Marsh Posté le 13-10-2006 à 12:48:50    

salut aprés une sacrée recherche j'ai vue ceci :
additional_headers (optionnel)
CHaîne à insérer à la fin des en-têtes du mail.  
 
Ce paramètre est typiquement utilisé pour ajouter des en-têtes supplémentaires (From, Cc et Bcc). Les en-têtes supplémentaires doivent être séparés par un caractère CRLF (\r\n).  
 
Note : Lors de l'envoi d'un mail, le mail doit contenir un en-tête From. Il peut être défini par le paramètre additional_headers, ou un par défaut peut être défini dans le php.ini.  
 
Ne pas faire ceci causera un message d'erreur similaire à Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing. L'en-tête From définit également l'en-tête Return-Path sous Windows.  
 
Note : Si le message n'est pas reçu, essayez d'utiliser uniquement un caractère LF (\n). Quelques agents de transfert de mail Unix de mauvaise qualité remplacent le caractère LF par le caractère CRLF automatiquement (ce qui revient à doubler le caractère CR si le caractère CRLF est utilisé). Ceci doit être un dernier recours car cela ne correspond pas à la RFC 2822.  
 
additional_parameters (optionnel)
Le paramètre additional_parameters peut être utilisé pour passer des paramètres additionnels au programme configuré à être utilisé pour envoyer les mails en utilisant le paramètre de configuration sendmail_path. Par exemple, ceci peut être utilisé pour définir l'enveloppe de l'adresse de l'expéditeur lors de l'utilisation de sendmail avec l'option -f.  
 
L'utilisateur sous lequel tourne le serveur web doit être ajouté en tant qu'utilisateur de confiance dans la configuration de sendmail afin que l'en-tête X-Warning ne soit pas ajouté au message lorsque l'enveloppe de l'expéditeur (-f) est défini en utilisant cette méthode. Pour les utilisateurs de sendmail, ce fichier est /etc/mail/trusted-users.  
 
 
 
je te conseille de lire la RFC ya des choses inéressantes à voir.

Reply

Marsh Posté le 13-10-2006 à 13:33:50    

Bonjour bassene, et merci énormément de ta réponse.
Je ne comprends pas très bien le lien avec ma question ? J'ai relu 3 fois, et j'avoue ne pas comprendre... je suis désolée...
L'envoi de mail se fait correctement avec un from.
Cet envoi de mail ne pose pas de problème.
Dans la mesure ou j'ai supprimé le code que je pensais être a l'origine du problème, et ou le problème persiste, j'en déduis qu'il y a un autre problème. reste à savoir lequel.
Ce qui est très étonnant, c'est que cette erreur se produit de façon aléatoire.  
J'ai d'abord pensé a une erreur d'interprétation de la boite mail réceptrice, mais celle ci n'est jamais la même dans les différnets cas d'erreur que je reçois, j'ai donc abandonné cette hypohèse.. Et lorsque ma cliente tente de reproduire l'erreur, il n'y en a pas...
Comment un code fonctionnant normalement, se met d'un coup a ne plus fonctionner ??  
Désolée, mais merci encore de ta répondre !

Reply

Marsh Posté le 14-10-2006 à 11:27:37    

T'as aucun moyen d'être sur à 100% que le mail est reçu malheureusement.
 
Si la fonction mail retourne false t'es fixé mais si ça part et que ça arrive pas (boite pleine, adresse de compte pop inexistante mais serveur existant) t'auras un mail plus tard (ça peut être plus ou moins long) et reste qu'à traiter ça après en effet :)
 
Mais tu peux très bien ne rien avoir!

Reply

Marsh Posté le 14-10-2006 à 12:47:30    

Faut voir aussi si y'aurai pas un filtre antispam du coté du client :) C'est source de problèmes à la con :)


---------------
Comme dirait quelqu'un de beaucoup plus avisé que moi, quelquefois c'est toi qui cognes le bar mais d'autres fois, et ben, c'est le bar qui te cogne.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed