CLASS D' ENVOIE DE MAIL EN SMTP

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 3 mai 2006 à 12:03
 MrqDev - 20 oct. 2017 à 15:30
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/37399-class-d-envoie-de-mail-en-smtp

Est-il possible de paramétrer pour que le mail indique qu'il ne reçois pas de réponse ?
merci , tres belle appli qui fonctionne tres bien

hazimthebear
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
22 avril 2011 à 21:14
Salut !

Merci de l'info ! Je vais faire les modif !

Bye
Immortal-PC
silvos44 Messages postés 1 Date d'inscription vendredi 18 août 2006 Statut Membre Dernière intervention 22 avril 2011
22 avril 2011 à 16:45
Bonjour, tout d'abord un grand merci pour la source, j'avais quelque problème sur la réception des mail sur certaine boite et grace a cette classe + quelque modifications ça passe nikel ....

Juste un petit truc, l'erreur 451 apparai facillement, il suffit de mettre des \r\n a la place des \n simple, certain serveur de digère pas. De plus, quand le contenu est en HTML, fait bien gaffe a ne pas redéfinir les <html> et le <head>, il sont prédéfinit dans la classe, donc soit vous l'enlever de votre contenu, soit de la class ..... voila voila.

Encore merci :)
dawadam Messages postés 5 Date d'inscription jeudi 11 mai 2006 Statut Membre Dernière intervention 22 septembre 2010
29 juil. 2010 à 11:26
merci, très utile et source nickel, ça fait plaisir.
ussra1 Messages postés 1 Date d'inscription mardi 12 avril 2016 Statut Membre Dernière intervention 12 avril 2016 > dawadam Messages postés 5 Date d'inscription jeudi 11 mai 2006 Statut Membre Dernière intervention 22 septembre 2010
12 avril 2016 à 11:53
pouvez-vous me passer les paramètres svp?
aseigre Messages postés 2 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 11 mai 2010
11 mai 2010 à 09:19
J'ai testé avec un autre outil, l'envoi est instantané.

Je pense que mon serveur rame, car avec une page test sans rien dedans, hors mis l'envoi du mail, le délai est toujours de 5-6 secondes.

Merci de ces réponses, je pense que je vais devoir utiliser une autre solution !
cs_era Messages postés 77 Date d'inscription lundi 6 mai 2002 Statut Membre Dernière intervention 4 mai 2011
10 mai 2010 à 17:15
pour le delai rien a faire
c la reponse de ton serveur smtp qui rame
chrono le temps que tu mets avec un autre outil pour envoyer des mails
si c est plus rapide -> deux soluces
-ton code est pourri !!!
-ton serveur rame

je rigole mais en gros c ca

voila.
cs_era Messages postés 77 Date d'inscription lundi 6 mai 2002 Statut Membre Dernière intervention 4 mai 2011
10 mai 2010 à 17:13
pour thebestfear
il faut regler ton tls a true attention le code est pas tres propre y a des choses a corrige
regarde la rfc tu comprendra j avais ce probleme et je l ai corrige
regarde aussi ton port des fois que
aseigre Messages postés 2 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 11 mai 2010
10 mai 2010 à 16:50
Bonjour,

Tout d'abord je dois vous dire que ce script est très utile pour la gestion des envois d'email.

J'aurai tout de même aimé savoir s'il était possible de réduire le délai d'envoi du mail ?

J'ai réglé la variable prévue a cet effet a 1 ( var $time_out = 1;// Durée de la connection avec le serveur SMTP), mais le délai reste toujours entre 5 et 6 secondes d'attente par mail.

Merci par avance.

Cdt.
TheBestFear Messages postés 40 Date d'inscription dimanche 5 avril 2009 Statut Membre Dernière intervention 19 février 2010
18 déc. 2009 à 13:17
Bonjour,
j'ai essayer d'utiliser ton code mais un petit problème que je ne comprend pas viens de se poser,

au moment de l'authentification sur le serveur il me dit sa :

Le serveur refuse l' authentification (AUTH LOGIN) !!!
Numéro de l' erreur: 530
Message renvoyé: 530 5.7.0 Must issue a STARTTLS command first. 16sm1877405ewy.6
Impossible d' envoyer le mail !!!

si vous avez une idée de se qui faut rajouter dans le code, je suis preneur !

sinon j'utilise la version simple car la version complexe est impossible a mettre en marche, des que j'envoie un email sa ne s'active même pas aucun message de retour

merci de repondre

bonne journée
cs_era Messages postés 77 Date d'inscription lundi 6 mai 2002 Statut Membre Dernière intervention 4 mai 2011
27 sept. 2009 à 19:59
hello,

la methode authentification a un probleme, j ai lu la rfc
mais je n arrive pas a m authentifier sur mon serveur smtp prive
il jette des que je fais AUTH LOGIN
si quelqu un peut m aider

merci
lcomb Messages postés 11 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 10 mai 2008
14 sept. 2009 à 23:20
Salut grace au passage a PHP 5 Des serveurs ont fait begguer ma solution web pour le mail je recherche un groupe de travail pour codevelloper une solution d entreprise pour le mail

Merci de me repondre a plus tard
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
27 août 2009 à 19:53
Salut !

Oui, ça reprend les commandes telnet. Le lien est très intéressant, mais on ne peux effectuer une connexion directement comme cela en php.

Je cherche une solution.
Je te tiens au courant
@+
ImmortalPC
Utilisateur anonyme
6 août 2009 à 00:20
Super ton script m'a aidé !

Seulement j'ai essayé pour Gmail et ça ne marche pas ça bug à cause des SSL !

Apparement ta méthode reprend les commandes telnet pour se connecter à un smtp et envoyer un mail j'ai trouver une page où l'on dit qu'il faut utiliser " openssl s_client -crlf -connect smtp.gmail.com:465 " pour se connecter à smtp.gmail.com... saurais tu comment intégrer cela à ton script ? le lien est http://www.forumdz.com/showthread.php?t=14991
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
23 janv. 2009 à 18:49
Salut !

Il me semblait qu' il y avait un message qui rapportait un problème :: http://cr.yp.to/docs/smtplf.html
Donc pour info, j' ai modif la class SMTP là ::
http://immortal-pc.info/CodeS-SourceS/Class.SMTP.rar
Enfaite, certain serveurs veulent un \n et d' autres \r\n ( fin de commande )
Pour config ça :
$smtp->set_PO3_cmd_EndLine( $endl )
$smtp->set_SMTP_cmd_EndLine( $endl )

Valeurs autorisées pour $endl :
cr || \r || lf || \n || crlf || \r\n

@+
Immortal-PC
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
22 janv. 2009 à 14:04
Salut !

Grâce à julkien60 je pense avoir trouver le problème.

Il faut que mettre le Login et le Passe que pour le serveur POP3
Pour résumer :
$smtp = new SMTP('smtp.serveur.fr', '', '', 25, 'immortalpc.info', 0);
$smtp->set_pop3('pop.serveur.fr', 'login', 'mot de passe', 110, 30);

Tenez moi au courant ;-)
@+
Immortal-PC

PS: Perso je me connecte plus vite sur le serveur ns0.ovh.net ( 0=zéro ) port 587.
$smtp = new SMTP('smtp.serveur.fr', '', '', 587, 'immortalpc.info', 0);
julkien60 Messages postés 7 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 16 octobre 2009
22 janv. 2009 à 12:51
Salut,

je t'est envoyé deux MPs avec un test en local, et un test sur mon hébergement OVH (avec la même configuration), je suis passer par les mps car je pouvais plus commenter ...

Pour les deux, c'est erreur ...
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
22 janv. 2009 à 12:19
Salut !

"Vraiment réactif ça fait plaisir !
Je rentre du taf là.. je vais me coucher et promis demain tu auras un compte rendu d'un OVHien :D
Merci beaucoup ;)"
>> De rien ;)

"Je n'arrive pas à me connecter, j'obtiens le message d'erreur:
Login ( Nom d' utilisateur ) incorrect !!!
j'ai vérifié mon login et mot de passe mais non."
>> Et en débug ? Là le problème c'est => mais quel est le login qui n'a pas été accèpté ?
J' ai fait une petite mise à jour -> Les erreurs sont plus précises.
http://immortal-pc.info/CodeS-SourceS/Class.SMTP.rar

Il faudrait que vous passiez en mode debug :
//$smtp = new SMTP('smtp.serveur.fr', '', '', 25, 'nom de domaine', 'Debug; 0 désactivé, 1 activé');
$smtp = new SMTP('smtp.serveur.fr', 'login', 'mot de passe', 25, 'immortalpc.info', 1);

( le 1 à la fin )

@+
Immortal-PC
cs_tsimba Messages postés 5 Date d'inscription jeudi 20 octobre 2005 Statut Membre Dernière intervention 22 janvier 2009
22 janv. 2009 à 07:40
Je n'arrive pas à me connecter, j'obtiens le message d'erreur:
Login ( Nom d' utilisateur ) incorrect !!!
j'ai vérifié mon login et mot de passe mais non.
julkien60 Messages postés 7 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 16 octobre 2009
22 janv. 2009 à 03:57
Vraiment réactif ça fait plaisir !

Je rentre du taf là.. je vais me coucher et promis demain tu auras un compte rendu d'un OVHien :D

Merci beaucoup ;)
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
21 janv. 2009 à 14:44
Salut,

Voilà j' ai ajouté l' option "connection et déconnection à un serveur POP3 avant l' envoie du / des mails".
( j' ai grave galéré => j' ai mit 1H pour trouver qu'un serveur pop n' accèpte une requete que si on lui envoie \r\n ( en temps normal c' est juste \n ))
Pour info, j' ai mit a dispo 2 types de connections à un serveur POP3 :
- Une connection qui utilise les fonctions imap
- Une connection qui utilise fsockopen ( je trouve que c' est plus lent... )

Je ne sais pas si ça permettera de faire marcher le serveur smtp de OVH donc je ne met pas à jour ma source. Voilà le lien qui contient les modifs avec un exemple :
http://immortal-pc.info/CodeS-SourceS/Class.SMTP.rar

Donc a tester sur OVH ^^
Tenez moi au courant ;-)

@+
Immortal-PC
cs_tsimba Messages postés 5 Date d'inscription jeudi 20 octobre 2005 Statut Membre Dernière intervention 22 janvier 2009
20 janv. 2009 à 06:16
Merci
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
19 janv. 2009 à 12:08
Salut,

normal étant donné que cette fonction n' existe pas sur ces fichiers ^^
Je code actuellement cette fonction.
Je metterai mon code ici soit cette après midi soit demain après midi.

@+
cs_tsimba Messages postés 5 Date d'inscription jeudi 20 octobre 2005 Statut Membre Dernière intervention 22 janvier 2009
19 janv. 2009 à 09:41
Je n'ai pu trouver par où s'authentifier via POP sur ces codes?
julkien60 Messages postés 7 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 16 octobre 2009
17 janv. 2009 à 12:06
Merci bien,

D'autre part pour ce qui utilise OVH sachez qu'il n'est pas possible de rejoindre un autre SMTP (d'un autre hébergeur) donc la seule solution c'est l'identification par le pop3...

Merci de te donner la peine pour nous, pauvre petits utilisateurs d'OVH,

à bientôt.
cs_tsimba Messages postés 5 Date d'inscription jeudi 20 octobre 2005 Statut Membre Dernière intervention 22 janvier 2009
17 janv. 2009 à 08:54
Je vais essayer de s'identifier avec POP d'abord avant SMTP. C'est à partir d'une compte yahoo que j'essaie d'envoyer un mail.
Merci de votre réponse.
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
16 janv. 2009 à 18:40
Salut,

Il faut s' identifier sur le pop avant d' utiliser le smtp !? ( c' est des fous de la sécurité chez ovh ^^ )
http://guides.ovh.com/EmailSmtpPop3Imap

Je vais voir ce que je peux faire ;-)

@+
julkien60 Messages postés 7 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 16 octobre 2009
16 janv. 2009 à 15:23
Salut,

Il y'a effectivement un souci chez OVH avec cette class.

Pour y remédier a priori, il faudrait une authentification sur le pop3 avant (dixit ovh)

mail ovh :

==========================================================================
EMAIL

Pour récupérer vos e-mails via un client messagerie (outlook, the bat, etc.),
utilisez les informations suivantes :

Serveur pop: pop3.xxx.com ou mail.xxxx.com ou ns0.ovh.net
Serveur smtp: smtp.xxxx.com ou ns0.ovh.net
(pour envoyer un email il faut d'abord vous identifier via le pop3)

=======================================================================

Serait-il possible d'inclure cette possibilité ?

Je te remercie par avance.
cs_tsimba Messages postés 5 Date d'inscription jeudi 20 octobre 2005 Statut Membre Dernière intervention 22 janvier 2009
14 janv. 2009 à 12:51
Bonjour, j'ai essayé cette classe et j'ai obtenu le message d'erreur :
Le serveur refuse l' authentification (EHLO et HELO) !!!
Numéro de l' erreur: 0
Message renvoyé:
Impossible d' envoyer le mail !!!

Comment remedier à ça?
freemaul Messages postés 1 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 21 décembre 2008
21 déc. 2008 à 19:47
Fonctionne trés bien, merci pour cette source qui va m'être trés utile
0azzeddine Messages postés 2 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 4 septembre 2008
4 sept. 2008 à 17:36
je né pas comprite se .......................
svp envoier moi se exemple au mon email

black.beard38@gmail.com
svp l'exemple de envoier email php

et merci a tout
a bientot
....................................................
0azzeddine Messages postés 2 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 4 septembre 2008
4 sept. 2008 à 17:34
thanks guy but i dont enderstood enything
XelectroX Messages postés 209 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 6 novembre 2009
10 mars 2008 à 21:17
Ok merci à toi et pour info, gmail n'utilise pas le système avec STARTTLS ;)
Si ca peut permettre de compléter ta source ...
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
10 mars 2008 à 11:21
Salut !

"Super et fonctionnel !!"
>> Merci :p

"Quelqu'un saurait-il comment faire pour un serveur smtp avec sécurité TLS ??"
>> Je travail dessus :-)

@+
XelectroX Messages postés 209 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 6 novembre 2009
26 févr. 2008 à 23:03
Quelqu'un saurait-il comment faire pour un serveur smtp avec sécurité TLS ??
XelectroX Messages postés 209 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 6 novembre 2009
26 févr. 2008 à 22:14
Super et fonctionnel !!
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
24 avril 2007 à 17:08
Salut,

Apparemment ça vient de ton serveur :
http://forum.kimsufi.com/showthread.php?t=234

Ton serveur n' pas de vrais serveur SMTP il n' a que sendmail

2 solutions :
- Utiliser un autre script
- Utiliser un autre serveur SMTP

@+
sayruscs Messages postés 7 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 8 mai 2009
23 avril 2007 à 16:34
Toujours pas trouvé d'où pouvait venir l'erreur?

Car ca m'intéresse vraiment cette classe...
sayruscs Messages postés 7 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 8 mai 2009
20 avril 2007 à 13:05
Salut,

Non je ne reçois malheureusement pas le mail.

Je précise que j'ai un serveur dédié OVH donc normalement le SMTP de mon serveur devrait fonctionner :/ (Gentoo release2)
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
20 avril 2007 à 12:46
Salut,

Es que tu reçois le mail ?
Je vais me renseigner sur le protocole ESMTP utilisé par ovh.

@+
sayruscs Messages postés 7 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 8 mai 2009
19 avril 2007 à 13:25
Bonjour,

Ce script marche très bien en local avec le smtp de mon FAI.

Par contre, lorsque j'upload ce script sur mon hébergement OVH, pas moyen d'utiliser le SMTP de mon serveur OVH.

Voici l'erreur qui m'est retournée...

Quel est le problème? Merci

Connection
220 nsxxxxx.ovh.net ESMTP
EHLO mwp-downloads.be
250-nsxxxxx.ovh.net
250-PIPELINING
250-STARTTLS
250-8BITMIME
250 SIZE 0
MAIL FROM:<toto@monsite.be>
250 ok
RCPT TO:<toto2@autresite.be>
250 ok
RCPT TO:<toto@monsite.be>
250 ok
DATA
354 go ahead
Entête et message :
X-Sender: toto@monsite.be
MIME-Version: 1.0
Message-ID: <98985fab3d1719a908feec7f9797f1b9@mwp-downloads.be>
Date: Thu, 19 Apr 2007 13:24:57 +0200
Content-Type: Multipart/Mixed;
boundary="------------Boundary-00=_deb5abf0000000000000"
X-Mailer: PHP 5.1.4
From: "toto@monsite.be"
X-FID: FLAVOR00-NONE-0000-0000-000000000000
X-Priority: 1
To: toto2@autresite.be
Subject: MESSAGE AUTOMATIQUE: dqzdqzd



--------------Boundary-00=_deb5abf0000000000000
Content-Type: Multipart/Alternative;
boundary="------------Boundary-00=_30efe060000000000000"


--------------Boundary-00=_30efe060000000000000
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: 8bit

dzq

Voici le lien du fichier

--------------Boundary-00=_deb5abf0000000000000--
dzq

Voici le lien du fichier
Envoie du mail impossible !!!
Numéro de l' erreur: 0
Message renvoyé:
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
24 mars 2007 à 17:22
Salut,

>>Coucou747
La fonction mail n' est pas vraiment un support natif pour les connections avec les serveurs SMTP.
Un support natif permettrait d' utiliser les fonctions usuelles SMTP sans a avoir à passer par une autre fonction.
Avec un support natif on pourrait choisir le serveur SMTP, etc...

@+
kamal101 Messages postés 12 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 22 mars 2007
22 mars 2007 à 23:09
Je pense qu'il veut juste dire que le framework .net est natif.
En fait je fait appel a la classe MailMessage.
C'est du code natif, précompilé de .Net
qu'on appele directement.

const string SERVER = "MON SERVEUR RELAIS";
MailMessage oMail = new System.Web.Mail.MailMessage();
oMail.From = "email";
oMail.To = "email";
oMail.Subject = "Nouveau message -- page Contact";
oMail.BodyFormat = MailFormat.Html; // enumeration
oMail.Priority = MailPriority.High; // enumeration
oMail.Body = "Sent at: " + DateTime.Now;
SmtpMail.SmtpServer = SERVER;
SmtpMail.Send(oMail);

En php, il n'y a pas de framework précompilé, on utilise que des include ou des require_once.

Je crois que c'est cela qu'il voulait dire.
Veuillez me rectifier.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
22 mars 2007 à 22:38
par "support natif pour le SMTP" t'entends quoi ??

parceque pour moi, mail c'est ca...
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
22 mars 2007 à 18:59
Salut,

En PHP il n' y a pas de support natif pour le SMTP.
C' est pour quoi les fonctions fsockopen et mail existent

@+
kamal101 Messages postés 12 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 22 mars 2007
22 mars 2007 à 18:07
Mais pourtant en asp.net c,est tres simple. Il faut juste créer un objet, lui dire quel serveur smtp appeler, le login et mot de passe.
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
22 mars 2007 à 14:08
Salut,

Je n' ai jamais entendu dire que l' on pouvait faire sans la fonction fsockopen.
Je vois pas comment faire sans :S

@+
kamal101 Messages postés 12 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 22 mars 2007
21 mars 2007 à 14:55
Est-ce qu'il y a qqn qui a une idée d'une libraire pour envoyer des courriels en relay
qui n'utilise pas la fonction fsockopen, car on peut l'utiliser sur certains serveurs pour des raisons de securité.
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
23 févr. 2007 à 01:53
Salut,

petite mise à jour :
Suppression de quelques bugs.
Maintenant on peut envoyer des copies cachée (Bcc) et des copies simple (Cc).
Et une meilleur gestion des erreurs.

@+
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
5 déc. 2006 à 10:16
Salut,
Merci beaucoup ;-)

Pour le petit bug il était corrigé dans la dernière version ;-)

@+ et encors merci :D
codomolo Messages postés 31 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 2 juin 2008
5 déc. 2006 à 02:30
csa marchait pas mon affaire alors j'ai mis
if($url_file) //pour la classe
et
if($file_up) //pour le traitement et supprimé le fichier temporaire

et on dirait bioen que c'est 100% fonctionnel :D))

bon bien la voici la note de 10 maintenant lool !
codomolo Messages postés 31 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 2 juin 2008
5 déc. 2006 à 02:15
J'ai ajouté un if($_POST['file_up']) dans le traitement et la classe et là ca semble correcte...
codomolo Messages postés 31 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 2 juin 2008
5 déc. 2006 à 02:04
ah ben voilà il y aun petit bug sans le fichier joint...
ca me dit "champs manquant" mais le message est envoyé quand même...
je fais quoi, j'efface la ligne de la classe qui écrit ce message ???
codomolo Messages postés 31 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 2 juin 2008
5 déc. 2006 à 02:01
Ah zut avant de lancer les fleurs, je devrais tester si je peux envoyer sans pièce jointe...

le suspens continue...
codomolo Messages postés 31 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 2 juin 2008
5 déc. 2006 à 01:59
excellent le message html a bien été envoyé sans cassure, sizure ou autre affaire...

la pièce joint était affiché. en bas du message et présente en attachement avec le nom du fichier comme il se doit...

chapeau, c'est une excellente source et je met maintenant ta note de 10 bien mérité...

Bonne continuation !
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
4 déc. 2006 à 21:44
Re,

J' ai modifié la class (Class_SMTP.php) et l' exemple (Exemple_avec_pièce_jointe.php)

"merci mon pot tu es très très patient :-D"
>> De rien ;-)
Je suis là pour ça ;-)

@+
codomolo Messages postés 31 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 2 juin 2008
4 déc. 2006 à 20:13
ok le chamgement c dans la classe ou ailleurs ???
je suppose que c'est la classe...

merci mon pot tu es très très patient :-D

++
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
4 déc. 2006 à 16:14
Salut,

"Je souhaiterais aussi ajouter des balises dans le header (puis-je le faire en ajoutant la personnalisation des headers dans la page du traitement ???)"
>> Dans le "header" !? Le <head> .... </head> ?? Ou dans l' entête du mail ??
- Pour le <head> .... </head> il faudra modifier le fichier Class_SMTP.php le <head> est ligne 328 et le </head> ligne 331.
- Pour l' entête du mail j' ai ajouté toute les fonctions possible donc il suffit de modifier une variable et non plus passer par l' ajout du 4ème champs dans la fonction mail_smtp()
ex pour ajouter un mail en Bcc :
$smtp->Bcc = 'adressemail@serveur.com';


"Admettons que j'offre à mes clients la possibilité d'envoyer une pièce jointe, est-il possible d'envoyer le formulaire SI il ne m'envoit pas de pièce jointe ET sans utiliser un autre formulaire ???"
>> Absolument ;-)
Ce cas de figure est dans l' exemple ;-)


"admettons que j'écrive au préalable mon message avec outlook express et que je copie la source pour la coller dans mon message que je veux envoyer avec ma pièce jointe... eh bien mon message html sort tout croche à la réception dont voici un exemple: des balises du genre <tr> deviennent <tr > (pas tous) et la même chose pour d'autres balises -> c'est toujours la même chose il met des espaces et rend la balise inopérante ce qui déforme complètement le message... commet régler ce bug qui n'existe pas dans la version sans pièce jointe ???"
>> Oups :S petite erreur de ma part. Voilà c' est réglé avec cette nouvelle version ;-)
Mille excuses.

@+
codomolo Messages postés 31 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 2 juin 2008
4 déc. 2006 à 02:14
une dernière chose que je viens de remarquer...

>>> admettons que j'écrive au préalable mon message avec outlook express et que je copie la source pour la coller dans mon message que je veux envoyer avec ma pièce jointe... eh bien mon message html sort tout croche à la réception dont voici un exemple: des balises du genre <tr> deviennent <tr > (pas tous) et la même chose pour d'autres balises -> c'est toujours la même chose il met des espaces et rend la balise inopérante ce qui déforme complètement le message... commet régler ce bug qui n'existe pas dans la version sans pièce jointe ???

Je vous invite à faire un test et vous me direz si ca fait la même chose que moi... j'ai preis outlook express, mais n'importe lequel éditeur html fera la même chose...

++
codomolo Messages postés 31 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 2 juin 2008
4 déc. 2006 à 01:15
je ne sais pas si vous allez me croire, mais finalement j'ai un succès ! :-D

je ne sais pas pouquoi, mais ca marche à l'envers deu script sans pièce jointe et c'est là le pourquoi que ca ne fonctionnait pas...

l'exemple était requis sinon ca aurait jamais fonctionné...

mon formulaire, ses champs sont pour la destination et non pas pour l'envoyeur... en modifiant le traitement smtp->from() et smtp->mail(), ca finit par fonctionner... j'ai aussi enlever le "nom" des champs du formulaire, mais ca se peut que je le remette pour personnaliser le nom du client... il est rare que j'utilise le format brut, j'ai donc mis html comme défaut...

je souhaiterais aussi ajouter des balises dans le header (puis-je le faire en ajoutant la personnalisation des headers dans la page du traitement ???)

admettons que j'offre à mes clients la possibilité d'envoyer une pièce jointe, est-il possible d'envoyer le formulaire SI il ne m'envoit pas de pièce jointe ET sans utiliser un autre formulaire ???

merci bcp pour le coup de main pour mon moi néophyte en la matière... :-S

Bon, bien je vais faire une série de tests pour adapté ce succès dans ma page réelle...

++
codomolo Messages postés 31 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 2 juin 2008
3 déc. 2006 à 16:03
ok je vais tester le zip...
si ca marche je reviens dire merci, sinon je ferme le livre pour de bon...

@+
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
2 déc. 2006 à 17:42
Salut,

"$smtp->add_file($url_file); // ca fonctionne ??? c'est la seule façon de récupérer ce que j'ai parcouru avec mon formulaire..."
>> Uniquement si tu as déjà uploadé ton fichier

"le formulaire, justement, a-til besoin de qq chose d eparticulier dans on action ou post ou je ne sais pas pour que ca fonctionne ??? // j'ai juste mis un hidden pour url_file et renseigné le email envoyeur, le email destinataire et le sujet $Subject et le message $msg)"
>> Aucune importance pour ma classe du momment que tu lui donnes les bon paramètres

Pour l'exemple J' ai mit à jour le zip ;-)

@+
codomolo Messages postés 31 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 2 juin 2008
1 déc. 2006 à 18:35
salut,

poisse on dirait bien...
le script antérieur avant lka pièce joint lui fontionne sans pb...
celui avaec pièce jointe est une vrai galère et je songe à laisser tomber...

donc qq questions :

1. $smtp->add_file($url_file); // ca fonctionne ??? c'est la seule façon de récupérer ce que j'ai parcouru avec mon formulaire...

2. le formulaire, justement, a-til besoin de qq chose d eparticulier dans on action ou post ou je ne sais pas pour que ca fonctionne ??? // j'ai juste mis un hidden pour url_file et renseigné le email envoyeur, le email destinataire et le sujet $Subject et le message $msg)

à partir de là, je ne sais plus ce qui peut clocher... la pi`ce jointe n'est pas essentiel, c'était juste un +

ce que je trouve curieux c'est que j'ai testé un autre script (encore + compliqué qui avait un test inclus et il envoyait correctement le contenu et la pièce jointe)

Si j'ose une dernière suggestion c'est de me zipper un exemple concret et fonctionnel et à partir de là je verrai à l'adapter à mon serveur (donc le formulaire qui post et le traitement d'envoi)...

après ça je ferme le livre :-(

@+
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
28 nov. 2006 à 10:22
Salut,

On a la poisse a donf !!
Tu renseigne bien les paramètres minimum ?

$smtp = new SMTP('smtp.serveur.fr', 'login', 'pass', 25, 'nom de domaine', 1);

$smtp->add_file('./Fichier_test.txt');

$smtp->smtp_mail('to@you.com', 'sujet', 'message');// Envoie du mail


Ton serveur à besoin d' une autotentification ? Son port est bien 25 ?
L' adresse de destination (to@you.com ici) est bonne ??

Car là j' ai plus d'idée :S

@+
codomolo Messages postés 31 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 2 juin 2008
28 nov. 2006 à 02:21
voilà mainternant qu'il dit que le mail a été envoyé, mais il n'arrive rien à la destination et l'adresse est bien valide ?????????

la guigne se poursuit !

oui coucou le fichier et tout existe, c'est juste le chemin qui a été volontairement inventé pour pas ouvrir une porte de pandore aux abus...
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
27 nov. 2006 à 10:23
Salut,

t' es sur que tu entres les bons paramètres ??

Essaie ça : ( n' oublis pas de remplir les champs ;-)

PS : c' est le dernier paramètre (1) qui est important ->
$smtp = new SMTP('smtp.serveur.fr', 'login', 'pass', 25, 'immortal-pc', 1);

Le code :
<?php
include('./Class.SMTP.php');

// Remplissez le champs login et pass si vous avez besoin de vous identifié
// SMTP('smtp.serveur.fr', 'login', 'pass');

// SMTP sans authentification
// $smtp = new SMTP('smtp.serveur.fr');



$smtp = new SMTP('smtp.serveur.fr', 'login', 'pass', 25, 'immortal-pc', 1);

$smtp->set_from('Immortal-PC', 'me@serveur.com');

// Ajout des fichiers
$smtp->add_file('./Fichier_test.gif');
$smtp->add_file('./Fichier_test.txt');

$smtp->smtp_mail('to@you.com', 'sujet', 'message');// Envoie du mail
// Pour avoir un mail en html et en texte simple :
//$smtp->ContentType = 'txt/html';
//$smtp->smtp_mail('www.immortalpc@free.fr', 'Sujet', array($msg_html, $msg_txt));// Envoie du mail

if(!$smtp->erreur){
echo '
Votre mail a bien été envoyé.
',"\r\n";
}else{// Affichage des erreurs
echo $smtp->erreur;
}
?>


@+
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
27 nov. 2006 à 09:31
... ton fichier n'exiiste pas...
codomolo Messages postés 31 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 2 juin 2008
27 nov. 2006 à 01:05
J'ai fais du copier/coller pour la class et j'ai ceci comme erreurs :

Warning: fputs(): 3 is not a valid stream resource in /home/zone/domains/zone-international.com/private_html/ticket/reply/SMTP/Attach/Class.SMTP.php on line 509

Warning: fgets(): 3 is not a valid stream resource in /home/monsite/domains/monsite.com/private_html/SMTP/Attach/Class.SMTP.php on line 494

Warning: fputs(): 3 is not a valid stream resource in /home/monsite/domains/monsite.com/private_html/SMTP/Attach/Class.SMTP.php on line 509

Warning: fgets(): 3 is not a valid stream resource in /home/monsite/domains/monsite.com/private_html/SMTP/Attach/Class.SMTP.php on line 494
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
26 nov. 2006 à 21:45
Salut,

Pour faire plus simple j' ai réécrit les entêtes et ajouté une fonction.

Donc ça devrai être bon ;-)

@+
codomolo Messages postés 31 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 2 juin 2008
25 nov. 2006 à 05:50
voici les erreurs que ca me donne:

Warning: filetype(): Lstat failed for (null) (errno=2 - No such file or directory) in /home/monsite/domains/monsite.com/private_html/SMTP/Attach/formmail.SMTP.php on line 42

Warning: file_get_contents(C:\\Documents and Settings\\Administrateur\\Mes documents\\testfile.txt): failed to open stream: No such file or directory in /home/monsite/domains/monsite.com/private_html/SMTP/Attach/formmail.SMTP.php on line 47

P.S
file a été remplacé par fichier (ca change tu qq chose ???)

Ligne 42: .'Content-Type: application/'.filetype($fichier).';'."\n"

Ligne 47: .base64_encode(file_get_contents($fichier)).'--'.$boundary;

à noter que le nom de fichier apparaît avec 2 \\ dans le chemin du fichier au lieu de 1 seul comme il devrait (je pense que ca peut faire planter le script)

Va-t-on s'en sortir pensez-vous ???

++
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
24 nov. 2006 à 20:08
Salut,
zarb moi ça marche :S


"ca semble compliqué à intégrer..."
>> Un peu ^^

Et là ?
$head = 'From: "'.$nom_envoyeur.'"<'.$evoyeur.'>'."\n"
.'X-Mailer: PHP '.phpversion()."\n"
.'Date: '.date('l j F Y, G:i')."\n"
.'Subject: '.$sujet."\n"
.'Content-Type: multipart/mixed;'."\n"
.'boundary="'.$boundary.'"'."\n\n"
.'This is a multi-part message in MIME format.'."\n"
.'--'.$boundary."\n"
.'Content-Type: text/plain; charset=ISO-8859-1; format=flowed'."\n"
.'Content-Transfer-Encoding: 7bit'."\n"
.$message."\n\n"
.'--'.$boundary."\n"
.'Content-Type: application/'.filetype($file).';'."\n"
.' name="'.$file.'"'."\n"
.'Content-Transfer-Encoding: base64'."\n"
.'Content-Disposition: attachement;'."\n"
.' filename="'.$file.'"'."\n\n"
.base64_encode(file_get_contents($file)).'--'.$boundary;

++
codomolo Messages postés 31 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 2 juin 2008
21 nov. 2006 à 15:33
désolé ca ne fonctionne pas ca met erreur dans filetype(), il arrive pas à ouvrir le file_get_contents

ca semble compliqué à intégrer...
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
21 nov. 2006 à 10:36
Salut,

Comme ça il me semble :

<?php

$boundary = md5(uniqid(time()));;
$file = 'monfichier';
$sujet = 'Mon sujet';
$message = 'salut';
$nom_envoyeur = 'toto';
$evoyeur = 'moi@toto.com';

include('./Class.SMTP.php');

// Remplissez le champs login et pass si vous avez besoin de vous identifier
// SMTP('smtp.serveur.fr', 'login', 'pass');

// SMTP sans authentification
// SMTP('smtp.serveur.fr');
$head = 'From: "'.$nom_envoyeur.'"<'.$evoyeur.'>'."\n"
.'X-Mailer: PHP '.phpversion()."\n"
.'Date: '.date('l j F Y, G:i')."\n"
'Subject: '.$sujet."\n"
.'Content-Type: multipart/mixed;'."\n"
.'boundary="'.$boundary.'"'."\n\n"
.'This is a multi-part message in MIME format.'."\n"
.'--'.$boundary."\n"
.'Content-Type: text/plain; charset=ISO-8859-1; format=flowed'."\n"
.'Content-Transfer-Encoding: 7bit'."\n"
.$message."\n\n"
.'--'.$boundary."\n"
'Content-Type: application/'.filetype($file).';'."\n"
' name="'.$file.'"'."\n"
'Content-Transfer-Encoding: base64'."\n"
'Content-Disposition: attachement;'."\n"
' filename="'.$file.'"'."\n\n"
.base64_encode(file_get_contents($file)).'--'.$boundary;

$smtp = new SMTP('smtp.serveur.fr', 'login', 'pass');

$smtp->smtp_mail('to@you.com', 'sujet', '', $head);// Envoie du mail

if(!$smtp->erreur){
echo '
Votre mail a bien été envoyé.
',"\r\n";
}else{// Affichage des erreurs
echo $smtp->erreur;
}
?>

@+
codomolo Messages postés 31 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 2 juin 2008
21 nov. 2006 à 02:41
c'est quoi la ligne à ajouté en entête pour envoyer une pièce jointe zippé ???

merci !
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
23 août 2006 à 16:05
Salut,
c' est quoi exactement le problème ??
C' est pour faire quoi la table sql ??

++
cs_lamane Messages postés 20 Date d'inscription mercredi 7 avril 2004 Statut Membre Dernière intervention 1 avril 2007
21 août 2006 à 22:48
mon mail est othbel1@hotmail.com
cs_lamane Messages postés 20 Date d'inscription mercredi 7 avril 2004 Statut Membre Dernière intervention 1 avril 2007
21 août 2006 à 22:47
salut les mecs , ben je suis débutaent , frenchement je ne sais pas ou j epeut commancé, voilaj'ai une base de données mysql qui à une table
Message(id(auto inc ), message(text),consulter(boulean false par default));

dit moi de quoi j'oré besoidn comme classe et fonction svp j'ai besoind d'aid

svp
ffert Messages postés 63 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 15 décembre 2009
6 mai 2006 à 12:30
Bon, je pense que je vais plutôt essayer de trouver pourquoi la classe que j'utilisais précédement n'envois plus le contenu des messages, plutôt que d'essayer de nouveaux codes....

J'ai déjà envoyé plein de mails avec cette fonction, à mon avis les fait qu'il n'affiche aucun contenu, viens du contenu que je lui donne en paramètre, je pense. à voir...

Elle permet l'envois de pièces jointes, multi destinataire, avec gestion des To, BCC, CC, etc... un outil d'envois de mail complet.

Voici cette classe : (écrite à la base par un allemand)

<?
/**
* Fichier : class_send_email.inc
* description : class for sending HTML mails with attachments
* created : 21.02.2003
* last change : 19.12.2003
* author : Günther Bauer <guenni1981@lycos.de>
* * modifications décembre 2003: Alain BOURDEAU
* * Pour l'utilisation sur la plateforme de la coopérative http://www.ouvaton.org. Les \r ont été éliminés et la blise MIME---- a été mise en tète du Header
* * * traduction en français
* * copyright: Günther Bauer
* * *
* * *
* * * How to use :
* include("class_send_email.inc"); // include du fichier contenant la classe send_mail
* $mail = new sendmail(); // instanciation de la classe sendmail
* $mail->SetCharSet("ISO-8859-1"); // identification de la page de caractères
* $mail->from("Expeditor","Expeditor@wanadoo.fr"); // nom et adresse de l'expéditeur
* $mail->to("recipient@wanadoo.com"); // adresses des destinataires
* $mail->to("recipient@toto.org"); // adresses des destinataires
* $mail->cc("recipient@toto.de"); // adresses des destinataires Cc - Copie
* $mail->cc("recipient@toto.de"); // adresses des destinataires Cc - Copie
* $mail->bcc("recipient@toto.de"); // adresses des destinataires Bcc - Copie cachée
* $mail->bcc("recipient@toto.de"); // adresses des destinataires Bcc - Copie cachée
* $mail->subject("Le sujet de l'email"); // l'objet du message
* $mail->text("Le texte du message qui se trouve mis en texte et en html"); // texte ascii puis en html, les balises HTML sont automatiquement mises en place
* $mail->attachment("message.html"); // plusieurs fichiers mis en pièces jointes
* $mail->attachment("message.txt"); // plusieurs fichiers mis en pièces jointes
* $mail->send(); // expédie le mail
*
*/

class sendmail
{
// Variable deklarieren = declaration des variables
var $emailheader = "";
var $createur = ""; // ajout du 5em argument de l'e-mail
var $textheader = "";
var $textboundary = "";
var $emailboundary = "";
var $charset = "";
var $betreff = "";
var $empfaenger = array(); // transformation en array
var $attachment = array();
var $cc = array();
var $bcc = array();

// Konstruktor = construction des parametres fonctionnels
function sendmail()
{
$this->textboundary = uniqid(time());
$this->emailboundary = uniqid(time());
$this->charset = "ISO-8859-1";
}

// Funktion zum setzen des CharSet´s = la fonction de traduction des caractères
function SetCharSet($char)
{
$this->charset = $char;
}

// Von wem die Email kommt in den Header setzen = initialisation de l'émeteur
function from($name,$email)
{
$this->emailheader .= "From: ".$name."<".$email.">\n";
$this->createur = "-F $email";
}

// Funktion um den Adressaten anzugeben = la prise en compte des destinataires individuels (tranformé en tableau-array)
function to($to)
{
$this->empfaenger[] = $to;
}

// Funktion zum senden einer Kopie an Cc Empfänger = la prise en compte des destinataires Cc
function cc($kopie_an_empfaenger)
{
$this->cc[] = $kopie_an_empfaenger;
}

// Funktion zum senden einer Kopie an Bcc Empfänger = la prise en compte des destinataires Bcc
function bcc($kopie_an_empfaenger)
{
$this->bcc[] = $kopie_an_empfaenger;
}

// Erstellt den Header der Mime-Mail = intégration des destinataires Cc et-ou Bcc dans le Header Mime-Mail
function makeMimeMail()
{
if(count($this->cc) > 0)
{
$this->emailheader .= "Cc: ";
for($i=0;$i<count($this->cc);$i++)
{
if($i > 0) $this->emailheader .= ",";
$this->emailheader .= $this->cc[$i];
}
$this->emailheader .= "\n";
}

if(count($this->bcc) > 0)
{
$this->emailheader .= "Bcc: ";
for($j=0;$j<count($this->bcc);$j++)
{
if($j > 0) $this->emailheader .= ",";
$this->emailheader .= $this->bcc[$j];
}
$this->emailheader .= "\n";
}
// la balise MIME-Version: 1.0\nContent-Type: multipart/mixed; boundary a été mise dans le emailheader
$this->emailheader .= "MIME-Version: 1.0\n";
// $this->emailheader .= "MIME-Version: 1.0\nContent-Type: multipart/mixed;\n\tboundary="".$this->emailboundary.""\r\n";
}

// Funktion für den Betreff anzugeben = prise en compte de l'objet du message
function subject($subject)
{
$this->betreff = $subject;
}

// Textdaten in Email Header packen = intégration du texte du message dans le Header et crétion du double en html
function text($text, $tout)
{
$this->textheader .= "Content-Type: multipart/alternative; \n\tboundary="".$this->textboundary.""\n";
$this->textheader .= "--".$this->textboundary."\n";
$this->textheader .= "Content-Type: text/plain; charset="".$this->charset.""\n";
$this->textheader .= "Content-Transfer-Enconding: quoted-printable\n \n";
$text2 = str_replace('
','\n', $text); // \\n
$text2 = str_replace('
','\n', $text); // \\n
$text2 = str_replace('
','\n', $text); // \\n
$this->textheader .= strip_tags($text2)."\n"; // strip_tags()$text)."\n \n";
$this->textheader .= "--".$this->textboundary."\n";
$this->textheader .= "Content-Type: text/html; \n charset="".$this->charset.""\n";
$this->textheader .= "Content-Transfer-Enconding: 8bit\n \n";
if($tout<>0){
$this->textheader .= "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 3.2//EN'><html><head><meta HTTP-EQUIV='CONTENT-TYPE' CONTENT='text/html; charset=iso-8859-1'><title>mail</title></head> \n \n ".$text."\n </html>\n"; //"<html>".$text."</html>\n"; // ajout \r\n. au lieu de \n
}else{
$this->textheader . = $text; //"<html>".$text."</html>\n."; // ajout \r\n. au lieu de \n
}

$this->textheader .= "--".$this->textboundary."--\n";
//echo $this->textheader; // désactiver l'affichage : envois en mode silencieux
}


// Funktion zum anhängen für Attachments in der Email = prise en compte des fichiers attachés-joints au message
function attachment($datei)
{
// Überprüfen ob File Existiert = vérification de l'existence du fichier
if(is_file($datei))
{
// Header für Attachment erzeugen = création de l'entète de l'attachement
$attachment_header = "--".$this->emailboundary."\n" ;
$attachment_header .= "Content-Type: application/octet-stream;\n name="".$this->GetFileName($datei).""\n";
$attachment_header .= "Content-Transfer-Encoding: base64\n";
$attachment_header .= "Content-Disposition: attachment;\n filename="".$this->GetFileName($datei).""\n\n";

// Daten der Datei einlesen, in das BASE64 Format formatieren und auf max 72 Zeichen pro Zeile = transcodage BASE64 et formatage 72 caractères par ligne
// aufteilen
$file['inhalt'] = fread(fopen($datei,"rb"),filesize($datei));
$file['inhalt'] = base64_encode($file['inhalt']);
$file['inhalt'] = chunk_split($file['inhalt'],72);

// Attachment mit Header in der Klassenvariable speichern = intégration de la mise en forme dans la variable idoine
$this->attachment[] = $attachment_header.$file['inhalt']."\n";
}
else
{
// echo "Ce document $datei n'existe pas\n"; // désactiver l'affichage : envois en mode silencieux
}
}

// Funktion die den Dateinamen aus einer Angabe mit Pfad herausfiltert = traitement de l'adresse absolue du fichier
function GetFileName($PathWithFile)
{
if(preg_match("/\//i",$PathWithFile))
{
return substr(strrchr($PathWithFile,"/"),1);
}
else
{
return $PathWithFile;
}
}

// Funktion zum erstellen des Kompletten Headers der Email = mise en forme du Header des E-mail
// Senden der Email = expédition des e-mail
function send()
{
$this->makeMimeMail();
$header = $this->emailheader;
// Überprüfen ob Attachments angehängt wurden = ajout des différents attachements pris en compte
if(count($this->attachment)>0)
{
// $header .= "Content-Type: multipart/mixed;\n\tboundary="".$this->emailboundary.""\n";
$header .= "--".$this->emailboundary."\n";
$header .= $this->textheader;

if(count($this->attachment) > 0) $header .= implode("",$this->attachment);

$header .= "--$this->emailboundary--";
}
else
{
$header .= $this->textheader;
}
// Versenden der Mail = mise en expédition individuelles des mails
if(count($this->empfaenger) >0)
{
foreach($this->empfaenger as $pour)
{
mail("$pour",$this->betreff,"",$header,"$this->createur");
// echo "Mail : ".$pour."
"; // désactiver l'affichage : envois en mode silencieux
// Versenden gemacht fur ".$pour.
}
}else{
mail("$this->empfaenger",$this->betreff,"",$header,"$this->createur");
// echo "Mail : ".$this->empfaenger."
"; // désactiver l'affichage : envois en mode silencieux
// Versenden gemacht fur ".$pour."
}

$this->deletememory();
}

// Diese Funktion ist nur zum testen = C'est une fonction en test
function deletememory()
{
unset($this->emailheader);
unset($this->textheader);
unset($this->attachment);
}
}
?>
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
5 mai 2006 à 20:20
Salut,
ton serveur ne veux pas relayer les mails !!!
ça veux dire que tu peux écrire qu' a des personnes local :-(

Mais essaye avec la source de Coucou747 ;-)
Tiens moi au courant ;-)

@+
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
5 mai 2006 à 12:00
ici, elle fait la même chose, mais permet l'envoi de fichiers aussi

http://www.phpcs.com/codes/CLASS-MAILEUR_32034.aspx
ffert Messages postés 63 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 15 décembre 2009
5 mai 2006 à 07:51
voilà : ce code sert à Envoyer un mail rappelant le mot de passe du compte de l'utilisateur

j'utilise ce code :

$smtp = new SMTP('ns0.ovh.net');
$smtp->From = 'postmaster@monsite.org';
$smtp->smtp_mail("$authmail", "$sujet", "$mdpmailcontent1 : $mdpass
$mdpmailcontent2 . \r\n.");

Le résultat renvoyé me dis :
"Envoie du mail impossible car le serveur n' accèpte pas la commande RCPT TO !!!
Numéro de l' erreur: 553
Message renvoyé: 553 sorry, that domain isn't allowed to be relayed thru this MTA (#5.7.1)"

Si je m'authentifie mon code est (j'ai trouvé sur un forum que le port utilisé par ns0.ovh.net était le port 5025, mais ça ne fonctionne pas mieux avec le port 25 je vous rassure) :
$smtp = new SMTP('ns0.ovh.net', 'postmaster@monsite.org', 'xxxxxx', 5025, 'monsite.org', 0);
$smtp->From = 'postmaster@monsite.org';
$smtp->FromName = 'no-reply';
$smtp->smtp_mail("$authmail", "$sujet", "$mdpmailcontent1 : $mdpass
$mdpmailcontent2 . \r\n.");

l'erreur est : "Authentification Failure" alors que mes identifiants et mot de passes sont correct.

Si j'écris un autre type de serveur ex : $smtp = new SMTP('smtp.ovh.net', 'postmaster@monsite.org', 'xxxxxx', 5025, 'monsite.org', 0);

L'erreur est : "Bad server"

Sinon Coucou747, peut tu me donner un lien ou je pourrais trouver ta classe ? pour la tester ?

merci pour votre aide. à bientôt.
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
4 mai 2006 à 11:01
Salut,
Moi j' ai aucun problème avec wanadoo ou mon serveur smtp ou un autre serveur.
Quel erreur cela te renvoie t' il ?

@+
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
4 mai 2006 à 09:03
je suis chez wanadoo, et chez moi, ça le smtp marche parfaitement (j'ai pas testé cette source...)
j'en avais posté une il y a quelques mois qui faisait la même chose, mais en plus, elle permettait l'envoi de pièces jointes
ffert Messages postés 63 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 15 décembre 2009
4 mai 2006 à 03:01
Bonjour,

j'avais déjà trouvé une source pour envoyer des mails, mais elle contient un PB, qui fait que le mail part, mais le contenu est vide. Il y a juste le nom du destinataire et le sujet qui sont renseignés.

J'ai donc essayé ta source. et là, je ne suis pas arrivé à envoye un seul mail !!! mon code PHP est sur un serveur de OVH, y a t'il des restrictions. j'envois les mails (de contenu vide), dans le même script, j'ai mis les deux dans une page pour comparer. Mais apparement ça ne marche pas avec le tien. (j'ai tout essayé, authentifié, pas authentifié sur un serveur ns0.ovh.net, et même sur smtp.wanadoo.fr...) rien n'y fait..

please help me !!!

thank you.

(PS un lien interressant pour les commandes telnet d'envois de mail : http://www.kit-jussieu.org/support/node12.html )

merci.
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
3 mai 2006 à 15:24
Salut,
"selon ce que j'ai vu, t'as fait du php4 de base, alors dans ce cas, une fonction suffisait..."
>> j'ai fait le code d' une tel façon que l' on peut maintenir une connection active pour pouvoir envoyer plusieur mail.
Il est vrais que l'on aurait pu traduir cette class en plusieur fonctions, mais une class est plus partique.

"sinon, j'ai lu vaguement ton code, et j'ai rien vu pour les pièces jointes..."
>> je n' ai pas cherché à faire un prog pour les pièces jointes.
Une ligne dans l' entête peut arranger ça.

@+
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
3 mai 2006 à 12:03
selon ce que j'ai vu, t'as fait du php4 de base, alors dans ce cas, une fonction suffisait...

sinon, j'ai lu vaguement ton code, et j'ai rien vu pour les pièces jointes...
Rejoignez-nous