PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WEBDEV 2024 → Piece Jointe pour Email (Question débutant)
Piece Jointe pour Email (Question débutant)
Iniciado por guers.florent, mar., 22 2006 4:11 PM - 4 respostas
Publicado em março, 22 2006 - 4:11 PM
Bonjour tout le monde !

Voilà je souhaite joindre un (dans un premier temps), ou plusieurs fichier à un email.

Ma question va peut etre paraitre bete pour certain, peu importe.

j'ai donc utiliser un bouton upload pour selectionner la piece a joindre. Faut il obligatoirement uploader (UploadCopieFichier) le fichier sur le serveur ?

Comment joindre plusieurs piece ? les piece doivent etre copié sur le serveur de messagerie ou sur le serveur qui heberge le site ?

bref si quelqun peut m'expliquer comme cela fonctionne

merci d'avance
Publicado em março, 22 2006 - 8:09 PM
Le 22/03/2006, Flow a supposé :

Bonjour tout le monde !

Voilà je souhaite joindre un (dans un premier temps), ou plusieurs fichier à
un email.

Ma question va peut etre paraitre bete pour certain, peu importe.

j'ai donc utiliser un bouton upload pour selectionner la piece a joindre.
Faut il obligatoirement uploader (UploadCopieFichier) le fichier sur le
serveur ?

Comment joindre plusieurs piece ? les piece doivent etre copié sur le serveur
de messagerie ou sur le serveur qui heberge le site ?

bref si quelqun peut m'expliquer comme cela fonctionne

merci d'avance


tu veux joindre un fichier par email

1 - d'où viens-t-il ?
du pc de l'internaute ? donc upload puis email où tu veux (à priori pas
vers l'internaute puisque ça vient de chez lui)
de ton serveur ? pas d'upload puisque le fichier est déjà chez toi et
là tu le mail en PJ où tu veux

2 - plusieurs pj : pas de pb regarde les propriétés nbattache (de
mémoire)


Allez le code du formulaire de publication des wtablettes.
Vous uploader un fichier, il est sauvegardé sur le serveur. Le
webmaster reçoit un mail et le contributeur est en copie de ce mail.

// contrôles de saisies
SI VOTREMAIL="" ALORS
Erreur("Donnez votre email SVP"+RC+"Cette adresse est obligatoire pour
expédier votre requête mais elle ne sera pas communiquée ni publiée")
RepriseSaisie(VOTREMAIL)
FIN
//VérifieExpressionRégulière(MaZoneEmail,"[-.a-z1-9]+[@][-.a-z1-9]+[.][a-z]{2,4}")

SI testAdrMail(VOTREMAIL)=Faux ALORS
Erreur("Adresse mail invalide")
RepriseSaisie(VOTREMAIL)
FIN

SI TVD_TITRE="" ALORS
Erreur("Titre de la WTablette obligatoire")
RepriseSaisie(TVD_TITRE)
FIN
//si TVD_comm="" alors
// erreur("Description de la WTablette obligatoire")
// RepriseSaisie(TVD_TITRE)
//FIN
SI AUTEUR="" ALORS
Erreur("Nom de l'auteur obligatoire"+RC+"Vous pouvez choisir de rester
anonyme ensuite")
RepriseSaisie(TVD_TITRE)
FIN
wch est chaîne
refId est un entier
sRenvoi est une chaîne=PageParamètre("FCKeditor1")
TVD_COMM=sRenvoi
HtmlCOMM=TVD_COMM
SELON TVD_TYPEACT
CAS 1
Erreur("Vous ne pouvez publier de chapîtres."+RC+"Merci de contacter
le webmaster pour cela")
RETOUR
CAS 2,3,4,5,11
SI CHPUPLOAD="" ALORS
Erreur("Vous devez joindre un fichier")
RETOUR
FIN
CAS 7 // page WebDev
Erreur("Cela nécessite une intégration non automatisable dans le
projet"+RC+"Merci de contacter le webmaster pour cela")
RETOUR

CAS 6 // zone texte
CAS 8 // url
SI VOTREURL="" ALORS
Erreur("Vous devez indiquer votre URL")
RETOUR
FIN
CAS 9,10,12
Erreur("Type de ressource non prévue pour les WTablettes."+RC+"Merci
de contacter le webmaster pour cela")
RETOUR

FIN
txtmsg est une chaîne
txtmsg="De "+AUTEUR+" "+VOTREMAIL+" le "+DateVersChaîne(DateSys())+" à
"+HeureVersChaîne(HeureSys())+RC+RC+...
"(ce mail vous a aussi été envoyé à votre adresse)"+RC+...
"Merci d'enregistrer ma volonté de publier dans les WTablettes la
ressource suivante :"+RC
SI ANONYM=1 ALORS
txtmsg+="(Notez que j'accepte que mon nom "+AUTEUR+" soit cité)"+RC
SINON
txtmsg+="(Notez que je préfère rester anonyme)"+RC
FIN
txtmsg+=TVD_TITRE+" Ressource rattachée à "+ComboPere[ComboPere]+"
"+ComboPere[ComboPere]..ValeurAffichée+RC
txtmsg+="Type de contribution
"+TVD_TYPEACT+"-->"+FORME[FORME]..Libellé+RC+RC+RC
SELON TVD_TYPEACT
CAS 2,3,4,5,11
txtmsg+="Pièce jointe :"+CHPUPLOAD+RC+RC
CAS 8
txtmsg+="URL à pointer :"+VOTREURL+RC+RC
FIN
txtmsg+="Description "+RC+TVD_COMM+RC+RC+RC
txtmsg+="J'ai bien noté que cette publication devait au préalable faire
l'objet d'une validation."+RC+...
"L'équipe des WTablettes pourra apporter quelques modifications et me
rendra compte des raisons d'une éventuelle non publication"+...
"(exclusivement pour les demandes sérieuses bien sûr)"+RC
// crée un enreg dans le fichier HF DEMANDEPUBLI
HRAZ(DEMANDEPUBLI)
DEMANDEPUBLI.DATE_PUB=DateSys()
DEMANDEPUBLI.AUTEUR=AUTEUR
DEMANDEPUBLI.ANONYM=ANONYM
DEMANDEPUBLI.FICORIGIN=UploadNomFichier(CHPUPLOAD, Faux)
DEMANDEPUBLI.TVD_TITRE=TVD_TITRE
DEMANDEPUBLI.TVD_COMM=TVD_COMM
DEMANDEPUBLI.TVD_TYPEACT=TVD_TYPEACT
DEMANDEPUBLI.TXTMSG=txtmsg
DEMANDEPUBLI.VOTREMAIL=VOTREMAIL
DEMANDEPUBLI.VOTREURL=VOTREURL
DEMANDEPUBLI.TVD_PERE=ComboPere[ComboPere]
DEMANDEPUBLI.TVE_ID=gTVE_ID
HAjoute(DEMANDEPUBLI)

refIdÞMANDEPUBLI.IDDEMANDEPUBLI
wch="WT"+NumériqueVersChaîne(refId,"06d")+fExtraitChemin(DEMANDEPUBLI.FICORIGIN,fExtension)
DEMANDEPUBLI.FICDESTIN=fRepWeb()+"\Public\Avalider\"+wch
HModifie(DEMANDEPUBLI)

// sauvegarde au format mySQL dans WDEMPUBLI
monSQL:RAZInsert()
monSQL:SetCurrentTable("WDEMPUBLI")
monSQL:AddInsert("PUB_ID",DEMANDEPUBLI.IDDEMANDEPUBLI)
monSQL:AddInsert("PUB_AUTHOR",Quote(DEMANDEPUBLI.AUTEUR))
monSQL:AddInsert("PUB_EMAIL",Quote(DEMANDEPUBLI.VOTREMAIL))
monSQL:AddInsert("PUB_ANONYM",DEMANDEPUBLI.ANONYM)
monSQL:AddInsert("PUB_FORIG",Quote(DEMANDEPUBLI.FICORIGIN))
monSQL:AddInsert("PUB_FDESTIN",Quote(DEMANDEPUBLI.FICDESTIN))
monSQL:AddInsert("PUB_VOTREURL",Quote(DEMANDEPUBLI.VOTREURL))
monSQL:AddInsert("TVD_COMM",Quote(DEMANDEPUBLI.TVD_COMM))
monSQL:AddInsert("TVD_TITRE",Quote(DEMANDEPUBLI.TVD_TITRE))
monSQL:AddInsert("PUB_DATEPUB",DateSGBD(DEMANDEPUBLI.DATE_PUB,cToSGBD))
monSQL:AddInsert("PUB_TXTMSG",Quote(DEMANDEPUBLI.TXTMSG))
monSQL:AddInsert("TVE_ID",DEMANDEPUBLI.TVE_ID)
monSQL:AddInsert("TVD_PERE",DEMANDEPUBLI.TVD_PERE)
monSQL:AddInsert("TVD_TYPEACT",DEMANDEPUBLI.TVD_TYPEACT)

ExecUpdate(monSQL:CreeOrdreSQL("INSERT"))


EmailOuvreSessionSMTP("EnvoiEmail", "localhost")

//Email.Expéditeur = "NomExpéditeur <adresse@expediteur.com>"
Email.Expéditeur = AUTEUR+" <"+VOTREMAIL+">"
Email.Destinataire[1] = "contact <contact@wtablettes.net>"
Email.Destinataire[2]=AUTEUR+" <"+VOTREMAIL+">"
Email.NbDestinataire = 2
Email.NbAttache=0
Email.Sujet = "[PUBLIEZ] "+AUTEUR + " va publier "+TVD_TITRE+"
["+refId+"]"
Email.Message = txtmsg
// Envoie le mail
SI PAS EmailEnvoieMessage("EnvoiEmail") ALORS
Erreur("EmailEnvoieMessage a échoué '" + ErreurInfo(errMessage) + "'")
SINON
Info("Votre demande a été envoyée par Email (+copie à votre
adresse)"+RC+...
"Merci de votre participation aux WTablettes")
FIN
EmailFermeSession("EnvoiEmail")
//// Uploade le fichier dans le répertoire _WEB
sNomFichierCopié est une chaîne = UploadCopieFichier(CHPUPLOAD,
fRepWeb()+"\Public\Avalider",wch)

--
Eric Roumégou
Webmaster des wtablettes
Publicado em março, 23 2006 - 10:29 AM
Merci pour ses précisions, ca me parait plus clair. Il faut donc que je copie le fichier a joindre sur mon serveur... ca risque au final de prendre de la place.

Une fois l'email envoyé peut on supprimer les pieces jointes (enregistré donc sur le serveur) ?


Afin de joindre mes fichiers a l'email j'ai déclaré en global un tableau de 3 chaines. Tout se passe bien. lorsque je joint 3 pieces jointes, mais lorsque que j'en joint moins, l'envoi d'email est impossible, car en parcourant mon tableau il tombe sur des valeurs égal à "" (chaine vide)

Je pensait donc passer par un tableau dynamique mais je n'arrive pas a l'initialiser. Quelqun peut il m'aider ou me donner une autre idée ?

merci d'avance bon dev'
Publicado em março, 23 2006 - 11:07 AM
Il se trouve que Flow a formulé :


Merci pour ses précisions, ca me parait plus clair. Il faut donc que je copie
le fichier a joindre sur mon serveur... ca risque au final de prendre de la
place.
Une fois l'email envoyé peut on supprimer les pieces jointes (enregistré donc
sur le serveur) ?

of course ... regarde fsupprime

Afin de joindre mes fichiers a l'email j'ai déclaré en global un tableau de 3
chaines. Tout se passe bien. lorsque je joint 3 pieces jointes, mais lorsque
que j'en joint moins, l'envoi d'email est impossible, car en parcourant mon
tableau il tombe sur des valeurs égal à "" (chaine vide)

il faut penser à mettre Email.NbAttache=la bonne valeur
et bien raz ton tableau à chaque fois



Je pensait donc passer par un tableau dynamique mais je n'arrive pas a
l'initialiser. Quelqun peut il m'aider ou me donner une autre idée ?


pas la peine, c'est surement à cause de Email.NbAttache

merci d'avance bon dev'


--
Eric Roumégou
Webmaster des wtablettes
Publicado em março, 23 2006 - 1:23 PM
Encore une grand merci, je ce que je souhaitait faire fonctionne desormais. Il reste encore des amélioration a faire mais c'est pas mal

Un grand merci a toi Eric