Mail example file...
Mail example file...
Bonjour,
J'ai découvert par hasard Purebasic et en cette période de vacances, j'ai téléchargé la version de Démo. Je voudrais m'en faire une idée ayant lu des arguments très contradictoires sur celui-ci.
Comme je termine actuellement un petit "maileur" (dans un autre langage compilé multiOS) dont la fonction principale est d'envoyer des mails en HTML accompagnés de quelques pièces jointes, j'ai un bon point de repère. Pour les pièces jointes pas de problème. Mais comment fait-on pour que le fichier HTML s'ouvre directement dans le client de messagerie ? Le seul moment où l'on peut déclarer le Type MIME semble être dans la fonction AddMailAttachment.
Cordialement. Gilles
J'ai découvert par hasard Purebasic et en cette période de vacances, j'ai téléchargé la version de Démo. Je voudrais m'en faire une idée ayant lu des arguments très contradictoires sur celui-ci.
Comme je termine actuellement un petit "maileur" (dans un autre langage compilé multiOS) dont la fonction principale est d'envoyer des mails en HTML accompagnés de quelques pièces jointes, j'ai un bon point de repère. Pour les pièces jointes pas de problème. Mais comment fait-on pour que le fichier HTML s'ouvre directement dans le client de messagerie ? Le seul moment où l'on peut déclarer le Type MIME semble être dans la fonction AddMailAttachment.
Cordialement. Gilles
Dernière modification par selzig le sam. 11/juil./2009 11:34, modifié 1 fois.
Je me réponds...
A priori, c'est possible en utilisant la fonction SendMailData... qui n'est pas disponible (ni visible) dans la version de démo. Dommage. Ceci terminera donc ma découverte de ce produit d'autant que l'utilisation des bases mysql me semble également compliquée lorsqu'on ne veut pas utiliser ODBC... (et c'est mon cas).
Sinon, le peu de temps (2 x 1/2 journées) que j'ai utilisé le produit m'a semblé agréable et surprenant : sans Objet, on arrive à développer facilement. Mais, les forums ne permettent pas de se faire une idée, pas plus donc que la version de démo qui est trop bridée.
Autre chose que je n'ai pas pu discerner : Qui développe PureBasic ? "Fred et son équipe", c'est quoi ? Une société déclarée comme telle ? Une association non formalisée ? Le coût financier d'un produit de développement n'est à mon avis pas significatif... Par contre, la structure qui le développe l'est beaucoup à mes yeux, autant que l'investissement des programmeurs qui utilisent ce dernier.
Cordialement. Gilles
A priori, c'est possible en utilisant la fonction SendMailData... qui n'est pas disponible (ni visible) dans la version de démo. Dommage. Ceci terminera donc ma découverte de ce produit d'autant que l'utilisation des bases mysql me semble également compliquée lorsqu'on ne veut pas utiliser ODBC... (et c'est mon cas).
Sinon, le peu de temps (2 x 1/2 journées) que j'ai utilisé le produit m'a semblé agréable et surprenant : sans Objet, on arrive à développer facilement. Mais, les forums ne permettent pas de se faire une idée, pas plus donc que la version de démo qui est trop bridée.
Autre chose que je n'ai pas pu discerner : Qui développe PureBasic ? "Fred et son équipe", c'est quoi ? Une société déclarée comme telle ? Une association non formalisée ? Le coût financier d'un produit de développement n'est à mon avis pas significatif... Par contre, la structure qui le développe l'est beaucoup à mes yeux, autant que l'investissement des programmeurs qui utilisent ce dernier.
Cordialement. Gilles
-
- Messages : 1501
- Inscription : dim. 18/avr./2004 15:04
- Localisation : sud de la france
Bonjour,
Merci pour l'info.
Il est écrit qu'ils assurent le support. Faut-il en "déduire" que c'est aussi l'équipe de développement ? (sinon, je suppose que vous m'auriez proposer un autre lien)
Si tel est le cas, un langage de programmation dont le code est "fermé" et dont le developpement est assuré par seulement 2 programmeurs, c'est bluffant !... Mais, justement de par ces choix (et sans aucunement remettre en cause les qualités du produit), en environnement professionnel de production, j'hésiterais à prendre le risque de l'utiliser (ou de le faire utiliser) sauf pour la réalisation de quelques maquettes ou modélisations... d'autant qu'il s'écarte délibérément des désormais usuelles habitudes "Objet".
Cordialement. Gilles
Merci pour l'info.
Il est écrit qu'ils assurent le support. Faut-il en "déduire" que c'est aussi l'équipe de développement ? (sinon, je suppose que vous m'auriez proposer un autre lien)
Si tel est le cas, un langage de programmation dont le code est "fermé" et dont le developpement est assuré par seulement 2 programmeurs, c'est bluffant !... Mais, justement de par ces choix (et sans aucunement remettre en cause les qualités du produit), en environnement professionnel de production, j'hésiterais à prendre le risque de l'utiliser (ou de le faire utiliser) sauf pour la réalisation de quelques maquettes ou modélisations... d'autant qu'il s'écarte délibérément des désormais usuelles habitudes "Objet".
Cordialement. Gilles
Bienvenue Selzig,
Là tu te goures! Sur le plan de la performance et de la simplicité de programmation, ce langage est violent. Ce qu'il est plus dur à faire comprendre, c'est passer le message à d'autres professionnels.
Aussi, tu peux développer un projet et être aidé par différentes personnes ici présentes. Par contre, c'est vrai que les liens que jBernard13 met ne sont pas à user pour une demande d'explication précise et succinte: c'est pour cela qu'il y a ce forum.
N'hésite pas à présenter ce que tu connais déjà en informatique et, éventuellement dans ce langage. ça permet de situer ceux qui peuvent t'aider.
Ollivier
Là tu te goures! Sur le plan de la performance et de la simplicité de programmation, ce langage est violent. Ce qu'il est plus dur à faire comprendre, c'est passer le message à d'autres professionnels.
Aussi, tu peux développer un projet et être aidé par différentes personnes ici présentes. Par contre, c'est vrai que les liens que jBernard13 met ne sont pas à user pour une demande d'explication précise et succinte: c'est pour cela qu'il y a ce forum.
N'hésite pas à présenter ce que tu connais déjà en informatique et, éventuellement dans ce langage. ça permet de situer ceux qui peuvent t'aider.
Ollivier
Bonjour Ollivier,
Je partage probablement votre opinion. Le premier mot que j'utiliserais pour caractériser PB est bluffant. Développer sans Objet pour Windows ou Linux (en environnement graphique), c'est surprenant, original... et intéressant.
Maintenant pour développer en SSII, une application de gestion "classique" en se passant d'un outil comme un générateur d'états ou pour développer un back-end de site internet sans accès natifs mysql ou postgresql (et sans ODBC que tous nos tests dans différents langages ont "proscrits"), il faut voir... Et là, je me suis heurté à la limite de la version de démo.
Donc, pour en savoir plus, j'ai consulté les forums et essayé de joindre les concepteurs. Dans les forums, j'ai vu de nombreuses discussions sur le positionnement professionnel du produit enfin plus exactement sur la place que pourrait prendre ce produit en environnement professionnel. D'où mes questions.
Le problème n'est pas dans les 79€... mais le temps pour obtenir une qualification suffisante et développer proprement dans un langage représente un investissement lourd pour une SSII (et ses programmeurs). La pérennité du produit d'une part, et ses fonctionnalités et surtout ses incapacités d'autre part, sont des facteurs prépondérants dans les choix. Comme je l'ai lu, je ne suis pas surpris que cela passe bien dans le milieu enseignant... Le produit est original, intellectuellement intéressant... Qu'il y ait des réticenses dans le milieu de la programmation "professionnelle" ne m'étonne pas car elle n'est pas soumise aux mêmes contraintes qu'un programmeur "en milieu non professionnel". Je n'aime pas la distinction programmeur "professionnel"/"hobbyste". Il faut prendre en compte que même si un programmeur "en milieu non professionnel" -et j'en conviens sans aucune difficulté et sans aucune prétention- peut pratiquer au moins au même niveau qu'un programmeur "en milieu professionnel", il n'en demeure pas moins que la seule contrainte du premier reste finalement "ses propres limites" et le temps qu'il veut accorder à leur franchissement et, que contrairement au second, il est dispensé de la contrainte très forte et impérative que représente le client. Evidemment, PB semble permettre de développer vite comme beaucoup d'autres langages... Mais contourner -si c'est possible- l'absence d'un générateur d'états ou l'absence de connecteurs natifs, cela ferait perdre combien de temps... du temps gagné par ailleurs ? C'est ce que j'aurais voulu "estimer"...
Cordialement. Gilles
Je partage probablement votre opinion. Le premier mot que j'utiliserais pour caractériser PB est bluffant. Développer sans Objet pour Windows ou Linux (en environnement graphique), c'est surprenant, original... et intéressant.
Maintenant pour développer en SSII, une application de gestion "classique" en se passant d'un outil comme un générateur d'états ou pour développer un back-end de site internet sans accès natifs mysql ou postgresql (et sans ODBC que tous nos tests dans différents langages ont "proscrits"), il faut voir... Et là, je me suis heurté à la limite de la version de démo.
Donc, pour en savoir plus, j'ai consulté les forums et essayé de joindre les concepteurs. Dans les forums, j'ai vu de nombreuses discussions sur le positionnement professionnel du produit enfin plus exactement sur la place que pourrait prendre ce produit en environnement professionnel. D'où mes questions.
Le problème n'est pas dans les 79€... mais le temps pour obtenir une qualification suffisante et développer proprement dans un langage représente un investissement lourd pour une SSII (et ses programmeurs). La pérennité du produit d'une part, et ses fonctionnalités et surtout ses incapacités d'autre part, sont des facteurs prépondérants dans les choix. Comme je l'ai lu, je ne suis pas surpris que cela passe bien dans le milieu enseignant... Le produit est original, intellectuellement intéressant... Qu'il y ait des réticenses dans le milieu de la programmation "professionnelle" ne m'étonne pas car elle n'est pas soumise aux mêmes contraintes qu'un programmeur "en milieu non professionnel". Je n'aime pas la distinction programmeur "professionnel"/"hobbyste". Il faut prendre en compte que même si un programmeur "en milieu non professionnel" -et j'en conviens sans aucune difficulté et sans aucune prétention- peut pratiquer au moins au même niveau qu'un programmeur "en milieu professionnel", il n'en demeure pas moins que la seule contrainte du premier reste finalement "ses propres limites" et le temps qu'il veut accorder à leur franchissement et, que contrairement au second, il est dispensé de la contrainte très forte et impérative que représente le client. Evidemment, PB semble permettre de développer vite comme beaucoup d'autres langages... Mais contourner -si c'est possible- l'absence d'un générateur d'états ou l'absence de connecteurs natifs, cela ferait perdre combien de temps... du temps gagné par ailleurs ? C'est ce que j'aurais voulu "estimer"...
Cordialement. Gilles
Dernière modification par selzig le sam. 11/juil./2009 16:01, modifié 1 fois.
Bonjour selzig,
Concernant les générateurs d'états, je te conseille d'aller visiter le site suivant http://www.nxsoftware.com/ et d'aller voir "The Arctic reporting suite", il y d'autres logiciels sur ce site (tous fait en PureBasic) d'une très bonne qualité
Concernant les générateurs d'états, je te conseille d'aller visiter le site suivant http://www.nxsoftware.com/ et d'aller voir "The Arctic reporting suite", il y d'autres logiciels sur ce site (tous fait en PureBasic) d'une très bonne qualité
Je pense que la vraie question c'est est-ce que tu veux du Clic & Play? Si c'est oui, PureBasic ne fait pas l'affaire. Sinon, si tu va créer un service ou une boîte et que tu as besoin de fonctionnalités spécifiques comme l'optimisation, je pense que ce langage est très fiable et simple d'apprentissage. D'autres membres pourront, je l'espère te répondre plus précisément que moi, à l'instar comme à l'encontre de mon opinion.
Ollivier
Est-ce qu'on peut voir ton code s'il-te-plaît?Gilles a écrit :Mais comment fait-on pour que le fichier HTML s'ouvre directement dans le client de messagerie ?
Ollivier
Ollivier,
Que voulez-vous voir ? Le code PureBasic qui permettrait d'envoyer le fichier HTML (ou la réalisation de la même action dans un autre langage) ?
Je prends l'exemple fourni dans le PureBasic Démo.Il faudrait que je puisse injecter quelque chose dans le genre de ce code extrait d'une source internet
En version démo, c'est infaisable... L'instruction SendMailData n'est pas disponible. Donc, avec cette version, on ne peut pas intervenir de manière assez pointue sur les Types Mine lors de la génération du mail.
Pour le reste,
Merci pour votre aide.
Cordialement. Gilles
Que voulez-vous voir ? Le code PureBasic qui permettrait d'envoyer le fichier HTML (ou la réalisation de la même action dans un autre langage) ?
Je prends l'exemple fourni dans le PureBasic Démo.
Code : Tout sélectionner
SetMailBody(0, "Hello"+Chr(10)+"Ollivier")
AddMailAttachment(0, "","c:\pub\xpubUTF11.html","text/html")
AddMailAttachment(0, "My description", "c:\pub\logo.png","image/x-png")
AddMailAttachment(0, "My description 2", "c:\pub\sup.png","image/x-png")
AddMailRecipient(0, "xxxxx@yyyyyyyy.fr", #PB_Mail_To)
Result = SendMail(0, "smtp.wanadoo.fr", 25, 1)
[...]
Code : Tout sélectionner
Debug "Processing 'multipart/mixed' Email..."
Boundry.s = "PBSendMailv1.0_Boundry_"+ FormatDate("%dd%mm%yyyy%hh%ii%ss", Date())
SendMailData("Content-Type: multipart/mixed; boundary=" + Chr(34) + Boundry + Chr(13) + Chr(10) + Chr(34))
SendMailData(Chr(13) + Chr(10))
Pour le reste,
C'est très réducteur comme approche pour un programmeur. On se prend aussi souvent la tête avec des évènements sur des objets que sur du code purement procédural (du C par exemple)... et la satisfaction d'y arriver est la même. Et c'est bien là le principal. La méthode, on s'adapte, on choisit parmi un panel...tu veux du Clic & Play?
Merci pour votre aide.
Cordialement. Gilles
Dernière modification par selzig le sam. 11/juil./2009 18:25, modifié 3 fois.
-
- Messages : 1501
- Inscription : dim. 18/avr./2004 15:04
- Localisation : sud de la france
selzig
va voir ce lien c'est un soft gratuit pour crée des applications il s'appelle Seccia 0.1.0.11
http://www.seccia.org
va voir ce lien c'est un soft gratuit pour crée des applications il s'appelle Seccia 0.1.0.11
http://www.seccia.org
Bonsoir,
Merci pour votre aide jbernard13. Je suis persuadé que le produit que vous me conseillez est digne d'intérêt mais ma curiosité se portait exclusivement sur PB.
Par contre, peut-être pourriez-vous me renseigner sur le deuxième point qui m'intéresse (message de 15:25 ci-dessus) : c'est-à-dire, est-il possible d'atteindre des bases distantes mysql ou postgresql sans ODBC, en accès natif s'il existe sous PB, tout en maintenant les connexions persistantes ?
Cordialement. Gilles
Merci pour votre aide jbernard13. Je suis persuadé que le produit que vous me conseillez est digne d'intérêt mais ma curiosité se portait exclusivement sur PB.
Par contre, peut-être pourriez-vous me renseigner sur le deuxième point qui m'intéresse (message de 15:25 ci-dessus) : c'est-à-dire, est-il possible d'atteindre des bases distantes mysql ou postgresql sans ODBC, en accès natif s'il existe sous PB, tout en maintenant les connexions persistantes ?
Cordialement. Gilles
Salut,
J'ai du mal à comprendre précisément avec un exemple concret. A mon souvenir, une boîte mail orange permet d'afficher directement le HTML sans avoir à ouvrir le mail, mais ce n'est pas le cas de l'ensemble des boîtes mail.
Deux hypothèses (parce que je ne peux rien vérifier, j'ai GMail et on n'ouvre pas un HTML automatiquement...)
1) Par la pièce jointe
Je pense que si une pièce jointe contient le type MIME précis en fonction du format (extension) du fichier joint, ça facilite son ouverture.
Dans ce code, plus bas, j'ai récupéré tous les types MIME de l'aide pour qu'ils soient retournés en fonction d'une extension fournie.
Une fois ce code copié en en-tête du programme, on peut écrire ceci:Ainsi, le fichier joint est rajouté dans le mail en cours de création et son type MIME respectif au format du fichier est inclu.
On rajoute autant de pièces jointes qu'il y a de parties dans le mail (texte, image, etc...)
ça me semble être la méthode la plus compatible puisqu'on précise bien que les pièces jointes ne sont pas des paquets de données quelconques. Mais dans ce cas, la boîte mail doit spécifiquement ouvrir les pièces jointes automatiquement.
2) Par le corps de l'e-mail (peu probable)
Ce n'est pas SendMailData() mais SetMailBody() où chaque ligne est séparée par un retour chariot, etc...
Dans ce cas, on crée son en-tête Content-type, on indique que c'est un mixage en plusieurs parties et on indique quelle expression de séparation on va fixer (boundary). Pour chaque partie on précise l'en-tête Content-type (texte, image, etc...) Mais ça ne me semble pas très commode comme hypothèse car tout ça c'est du texte et une image doit alors être encodée pour être compatible au texte.
J'ai du mal à comprendre précisément avec un exemple concret. A mon souvenir, une boîte mail orange permet d'afficher directement le HTML sans avoir à ouvrir le mail, mais ce n'est pas le cas de l'ensemble des boîtes mail.
Deux hypothèses (parce que je ne peux rien vérifier, j'ai GMail et on n'ouvre pas un HTML automatiquement...)
1) Par la pièce jointe
Je pense que si une pièce jointe contient le type MIME précis en fonction du format (extension) du fichier joint, ça facilite son ouverture.
Dans ce code, plus bas, j'ai récupéré tous les types MIME de l'aide pour qu'ils soient retournés en fonction d'une extension fournie.
Une fois ce code copié en en-tête du programme, on peut écrire ceci:
Code : Tout sélectionner
Fichier.S = "Image.BMP"
AddMailAttachment(MailNo, MailDescription$, Fichier, GetMIMEType(StringField(Fichier, 2, ".") ) )
On rajoute autant de pièces jointes qu'il y a de parties dans le mail (texte, image, etc...)
ça me semble être la méthode la plus compatible puisqu'on précise bien que les pièces jointes ne sont pas des paquets de données quelconques. Mais dans ce cas, la boîte mail doit spécifiquement ouvrir les pièces jointes automatiquement.
2) Par le corps de l'e-mail (peu probable)
Ce n'est pas SendMailData() mais SetMailBody() où chaque ligne est séparée par un retour chariot, etc...
Dans ce cas, on crée son en-tête Content-type, on indique que c'est un mixage en plusieurs parties et on indique quelle expression de séparation on va fixer (boundary). Pour chaque partie on précise l'en-tête Content-type (texte, image, etc...) Mais ça ne me semble pas très commode comme hypothèse car tout ça c'est du texte et une image doit alors être encodée pour être compatible au texte.
Code : Tout sélectionner
;{
;{ Récupéré de l'aide, la liste des types MIME est stockée dans une section DATA }
DataSection
Data.S " application/acad | AutoCAD dwg"
Data.S " application/clariscad | ClarisCAD ccad"
Data.S " application/drafting | MATRA Prelude drafting drw"
Data.S " application/dxf | AutoCAD dxf"
Data.S " application/i-deas | SDRC I-deas unv"
Data.S " application/iges | Format d'échange CAO IGES igs,iges"
Data.S " application/oda | ODA oda"
Data.S " application/pdf | Adobe Acrobat pdf"
Data.S " application/postscript | PostScript ai,eps,ps"
Data.S " application/pro_eng | ProEngineer prt"
Data.S " application/rtf | Rich text rtf"
Data.S " application/set | CAO SET set"
Data.S " application/sla | stéréolithographie stl"
Data.S " application/solids | MATRA Solids dwg"
Data.S " application/Step | de données Step Step"
Data.S " application/vda | de surface vda"
Data.S " application/x-mif | Framemaker mif"
Data.S " application/x-csh | Script C-Shell (UNIX) dwg"
Data.S " application/x-dvi | texte dvi dvi"
Data.S " application/hdf | de données hdf"
Data.S " application/x-latex | LaTEX latex"
Data.S " application/x-netcdf | netCDF nc,cdf"
Data.S " application/x-sh | Script Bourne Shell dwg"
Data.S " application/x-tcl | Script Tcl tcl"
Data.S " application/x-tex | fichiers Tex tex"
Data.S " application/x-texinfo | eMacs texinfo,texi"
Data.S " application/x-troff | Troff t,tr,troff"
Data.S " application/x-troff-man | Troff/Macro man man"
Data.S " application/x-troff-me | Troff/Macro ME me"
Data.S " application/x-troff-ms | Troff/Macro MS ms"
Data.S " application/x-wais-source | Source Wais src"
Data.S " application/x-bcpio | CPIO binaire bcpio"
Data.S " application/x-cpio | CPIO Posix cpio"
Data.S " application/x-gtar | Tar GNU gtar"
Data.S " application/x-shar | Archives Shell shar"
Data.S " application/x-sv4cpio | CPIO SVR4n sv4cpio"
Data.S " application/x-sv4crc | CPIO SVR4 avec CRC sc4crc"
Data.S " application/x-tar | compressés tar tar"
Data.S " application/x-ustar | compressés tar Posix man"
Data.S " application/zip | compressés ZIP man"
Data.S " audio/basic | audio basiques au,snd"
Data.S " audio/x-aiff | audio AIFF aif,aiff,aifc"
Data.S " audio/x-wav | audio Wave wav"
Data.S " image/gif | Images gif man"
Data.S " image/ief | Images exchange format ief"
Data.S " image/jpeg | Images Jpeg jpg,jpeg,jpe"
Data.S " image/png | Images Png png"
Data.S " image/tiff | Images Tiff tiff,tif"
Data.S " image/x-cmu-raster | Raster cmu cmu"
Data.S " image/x-portable-anymap | Anymap PBM pnm"
Data.S " image/x-portable-bitmap | Bitmap PBM pbm"
Data.S " image/x-portable-graymap | Graymap PBM pgm"
Data.S " image/x-portable-pixmap | Pixmap PBM ppm"
Data.S " image/x-rgb | Image RGB rgb"
Data.S " image/x-xbitmap | Images Bitmap X xbm"
Data.S " image/x-xpixmap | Images Pixmap X xpm"
Data.S " image/x-xwindowdump | Images dump X Window man"
Data.S " multipart/x-zip | archive zip zip"
Data.S " multipart/x-gzip | archive GNU zip gz,gzip"
Data.S " text/html | HTML htm,html"
Data.S " text/plain | texte sans mise en forme txt,g,h,c,cc,hh,m,f90"
Data.S " text/richtext | texte enrichis rtx"
Data.S " text/tab-separated-value | texte avec séparation des valeurs tsv"
Data.S " text/x-setext | texte Struct etx"
Data.S " video/mpeg | Vidéos MPEG mpeg,mpg,mpe"
Data.S " video/quicktime | Vidéos QuickTime qt,mov"
Data.S " video/msvideo | Vidéos Microsoft Windows avi"
Data.S " video/x-sgi-movie | Vidéos MoviePlayer movie"
; On rajoute une chaîne vide pour créer un repérage de fin de données
Data.S ""
EndDataSection
;}
Global Dim Mime.S(255, 2) ; Table des types MIME de 256 lignes par 3 colonnes
Global MimeTypeQty.I
Procedure InitMIMETypeList() ; Procédure de chargement dans le tableau Mime()
Protected DataLine.S ; Alloue la variable chaîne DataLine
; Exemple de valeur : " application/acad | AutoCAD dwg"
Protected TypeMime.S ; Alloue la variable chaîne TypeMime
; Exemple de valeur : "application/acad"
Protected ExtraMime.S ;Alloue la variable chaîne ExtraMime
; Exemple de valeur : "AutoCAD"
Protected ExtMime.S ; Alloue la variable chaîne ExtMime
; Exemple de valeur : "dwg"
Protected LineNo.I ; Alloue la variable numérique entière
Repeat ; Départ de boucle de chargement des ligne de données de la section DATA
Read.S DataLine ; Lit une ligne de donnée
If DataLine ; La ligne est-elle non-vide ?
; Extrait la partie gauche de la ligne
TypeMime = Trim(StringField(DataLine, 1, "|") )
; Extrait la partie droite de la ligne
ExtraMime = Trim(StringField(DataLine, 2, "|") )
; Extrait la/les extension(s)
ExtMime = Trim(StringField(ExtraMime, CountString(ExtraMime, " ") + 1, " ") )
; Occulte les extensions déjà extraites
ExtraMime = Trim(Left(ExtraMime, Len(ExtraMime) - Len(ExtMime) ) )
; Enregistrement des infos extraites de la ligne de données
; dans la table Mime
Mime(LineNo, 0) = TypeMime ; 1ère colonne
Mime(LineNo, 1) = ExtraMime ; 2nde colonne
Mime(LineNo, 2) = ExtMime ; 3ème colonne
; On indique qu'une ligne supplémentaire a été chargée dans la table
LineNo + 1
EndIf
Until DataLine = "" ; Ligne vide? Oui=quitte la boucle
; Non=Retour à Repeat
MimeTypeQty = LineNo
EndProcedure
Procedure.S GetMIMEType(Ext.S)
Protected Result.S
Protected I.I
Protected J.I
Protected MimeExtList.S
Ext = UCase(Ext)
Result = ""
For I = 0 To (MimeTypeQty - 1)
MimeExtList = UCase(Mime(I, 2) )
For J = 0 To (CountString(MimeExtList, ",") + 1)
If Ext = StringField(MimeExtList, J + 1, ",")
Result = Mime(I, 0)
Break 2
EndIf
Next
Next
If Result = ""
Result = "application/octet-stream"
EndIf
ProcedureReturn Result
EndProcedure
InitMIMETypeList() ; Ligne à insérer avant la boucle principale d'un code
;}
Bonjour Ollivier
Merci pour le code. J'obtiens bien en effet la pièce jointe .html (et les autres)... affichée en dessous du "body".
Mais ce que je veux obtenir, c'est que le fichier.html apparaisse dans le body (évidemment sous réserve de l'inévitable "Afin de protéger,... Télécharger les images").
Le message Texte dans le body, ne sert qu'en cas où le client de messagerie ne peut pas afficher la page HTML...
J'ai continué à découvrir PB hier... Vraiment très surprenant.
Cordialement. Gilles
Merci pour le code. J'obtiens bien en effet la pièce jointe .html (et les autres)... affichée en dessous du "body".
Mais ce que je veux obtenir, c'est que le fichier.html apparaisse dans le body (évidemment sous réserve de l'inévitable "Afin de protéger,... Télécharger les images").
Le message Texte dans le body, ne sert qu'en cas où le client de messagerie ne peut pas afficher la page HTML...
J'ai continué à découvrir PB hier... Vraiment très surprenant.
Cordialement. Gilles
Dans ce cas, il faut mettre ton HTML dans le corps du mail avec l'instruction SetMailBody() (c'est la seconde hypothèse à laquelle je ne croyais pas trop).
Est-ce que tu sais faire ça? C'est-à-dire créer un simple mail en deux sous-partie qui représentent les deux versions d'un texte: la première en texte brut et la seconde en texte enrichi en HTML?
Plan de création du corps du mail
Est-ce que tu sais faire ça? C'est-à-dire créer un simple mail en deux sous-partie qui représentent les deux versions d'un texte: la première en texte brut et la seconde en texte enrichi en HTML?
Plan de création du corps du mail
OllivierEn-tête global MIME indiquant que l'on a affaire à un document composé (multipart)
--Separation
En-tête indiquant le texte brut
Texte brut
--Separation
En-tête indiquant le texte en version HTML
Contenu HTML
--Separation--