Page 1 sur 1
Lancer la messagerie mail avec sujet texte et pièce jointe
Publié : mer. 09/janv./2019 18:22
par Philippe_GEORGES
Bonjour
Je voudrais lancer depuis une application PureBasic le logiciel Mail avec un sujet, un corps de texte, et une pièce jointe. (vers un seul correspondant).
Comment dois je lancer la commande runprogram() et avec quels paramètres ?
Merci d'avance,
Phil
Re: Lancer la messagerie mail avec sujet texte et pièce join
Publié : mer. 09/janv./2019 19:02
par boby
Bonjour Philippe,
Je ne crois pas qu'il y ai grand utilisateurs de PB sous OS-X sur le forum français, je t'invite fortement à aller poser ta question sur le forum US, tu auras plus de chance d'obtenire ce que tu cherches.
Bonne recherche à toi !
Re: Lancer la messagerie mail avec sujet texte et pièce join
Publié : mer. 09/janv./2019 19:05
par Mindphazer
Bonjour,
il est possible de lancer l'application Mail avec la commande RunProgram suivante :
Par contre, manifestement, l'application n'accepte pas de paramètres
Je ne vois donc pas trop comment générer un nouveau mail avec un destinataire et une pièce jointe....
Essaie éventuellement de poser la question sur le forum anglais, peut-être y a t'il une solution avec les API....
Re: Lancer la messagerie mail avec sujet texte et pièce join
Publié : mer. 09/janv./2019 20:31
par Marc56
Un mailto ne fonctionne pas sous mac os ?
Sur pc, un simple RunProgram("mailto:nom@fournisseur?subject=xxxx&body=yyyy") et autres paramètres suffit. (sauf pour mettre une pièce jointe)
(Je n'ai pas de mac)

Re: Lancer la messagerie mail avec sujet texte et pièce join
Publié : jeu. 10/janv./2019 18:50
par Mindphazer
Voici une solution en utilisant Applescript
Pour le moment, ça n'ouvre qu'un nouveau mail sans renseigner ni destinataire, ni sujet.. J'y travaille
Merci à Wilbert du forum anglais pour la procédure AppleScript
Code : Tout sélectionner
Procedure.s AppleScript(Script.s)
Protected retVal.s, strVal, numItems, i
Protected aScript = CocoaMessage(0, CocoaMessage(0, CocoaMessage(0, 0, "NSAppleScript alloc"), "initWithSource:$", @Script), "autorelease")
Protected eventDesc = CocoaMessage(0, aScript, "executeAndReturnError:", #nil)
If eventDesc
numItems = CocoaMessage(0, eventDesc, "numberOfItems")
If numItems
For i = 1 To numItems
strVal = CocoaMessage(0, CocoaMessage(0, eventDesc, "descriptorAtIndex:", i), "stringValue")
If strVal
retVal + PeekS(CocoaMessage(0, strVal, "UTF8String"), -1, #PB_UTF8)
If i <> numItems : retVal + #LF$ : EndIf
EndIf
Next
Else
strVal = CocoaMessage(0, eventDesc, "stringValue")
If strVal : retVal = PeekS(CocoaMessage(0, strVal, "UTF8String"), -1, #PB_UTF8) : EndIf
EndIf
EndIf
ProcedureReturn retVal
EndProcedure
AppleScript("tell application " + Chr(34) + "Mail" + Chr(34) + #CRLF$+" set t To make new outgoing message "+#CRLF$ +"set visible of t To true"+#CRLF$+"activate"+#CRLF$+"End Tell")
Re: Lancer la messagerie mail avec sujet texte et pièce join
Publié : jeu. 10/janv./2019 21:48
par Mindphazer
Et voilà la version avec le mail du destinataire, son nom, le sujet et le contenu du mail. Pour les pièces jointes, je sèche pour le moment...
Code : Tout sélectionner
Procedure.s AppleScript(Script.s)
Protected retVal.s, strVal, numItems, i
Protected aScript = CocoaMessage(0, CocoaMessage(0, CocoaMessage(0, 0, "NSAppleScript alloc"), "initWithSource:$", @Script), "autorelease")
Protected eventDesc = CocoaMessage(0, aScript, "executeAndReturnError:", #nil)
If eventDesc
numItems = CocoaMessage(0, eventDesc, "numberOfItems")
If numItems
For i = 1 To numItems
strVal = CocoaMessage(0, CocoaMessage(0, eventDesc, "descriptorAtIndex:", i), "stringValue")
If strVal
retVal + PeekS(CocoaMessage(0, strVal, "UTF8String"), -1, #PB_UTF8)
If i <> numItems : retVal + #LF$ : EndIf
EndIf
Next
Else
strVal = CocoaMessage(0, eventDesc, "stringValue")
If strVal : retVal = PeekS(CocoaMessage(0, strVal, "UTF8String"), -1, #PB_UTF8) : EndIf
EndIf
EndIf
ProcedureReturn retVal
EndProcedure
sujet$ = "Sujet"
nom$ = "Toto"
dest$ = "Destinataire@toto.com"
Contenu$ = "Bla Bla bla"
script$ = "Tell Application " + Chr(34) + "Mail" + Chr(34) + #CRLF$
script$ = script$ + "set newMessage to make new outgoing message with properties {subject:"+Chr(34)+sujet$+Chr(34)+", content:"+Chr(34)+Contenu$+Chr(34)+" & Return & Return}"+#CRLF$
script$ = script$ + "tell newMessage" + #CRLF$
script$ = script$ + "set visible to true" + #CRLF$
script$ = script$ + "make new to recipient at end of to recipients with properties {name:"+Chr(34)+nom$+Chr(34)+", address:"+Chr(34)+dest$+Chr(34)+"}" + #CRLF$
script$ = script$ + "end tell" + #CRLF$
script$ = script$ + "activate" + #CRLF$
script$ = script$ + "End Tell" + #CRLF$
AppleScript(script$)
Re: Lancer la messagerie mail avec sujet texte et pièce join
Publié : sam. 12/janv./2019 14:58
par Philippe_GEORGES
Merci beaucoup, je vais tester tout ça !
Pour les pièces jointes, je crains que se soit impossible....
Re: Lancer la messagerie mail avec sujet texte et pièce join
Publié : sam. 12/janv./2019 18:04
par Mindphazer
En Applescript, ça fonctionne (les pièces jointes)
Mais le script Applescript, lancé par la procédure AppleScript() (vous me suivez ?

) n'insère pas la pièce jointe. Je ne comprends pas pourquoi...
Re: Lancer la messagerie mail avec sujet texte et pièce join
Publié : sam. 12/janv./2019 19:11
par djes
Re: Lancer la messagerie mail avec sujet texte et pièce join
Publié : sam. 12/janv./2019 20:06
par Mindphazer
Oui mais ce que veut Philippe, c'est lancer l'application Mail sur son Mac en créant un nouveau message et en renseignant le destinataire, le sujet et insérer une pièce jointe...
Sinon, l'envoi de mail via les commandes natives de PB fonctionne très bien