Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour à tous.. Je suis nouveau ici
J'ai débuté en PB il y a 3 mois après 8 ans de bons et loyaux services envers Microsoft et VB6.
Je suis confronté à un petit problème :
Lorsque je veux envoyer des mails avec mailsession et que le client par défaut est Lotus Notes, PB ouvre Lotus et le message.. Il faut ensuite cliquer sur "envoyer".
En prod, PB fonctionne avec Outlook et là, aucun soucis, il envoie le mail "silencieusement", c'est à dire sans ouvrir la messagerie.
Sous Outlook, je sais qu'on pouvait cocher l'option "Autoriser les applications externes à envoyer des mails" (ou un truc du style).. Mais sous Lotus (que je trouve horrible de lourdeur), je n'arrive à rien.
Quelqu'un connait il une solution miraculeuse ?
Pour information :
Version de PB : 10.2 - Version de Lotus : Notes 6.5 - OS : XP Pro
Dernière modification par tcari (05-06-2007 16:21:11)
Hors ligne
salut,
en fait pb ouvre la session lotus notes... et demandes en retour le login et le pass... si je ne me trompe pas.
Hors ligne
Salut Pick ouic..
Non, Lotus ne me demande rien. Il s'ouvre bêtement, comme si j'avais cliqué dessus puis création d'une nouvelle note. Dans la note, il me met bien tout ce que j'avais programmé (titre, sujet, destinataires, etc...) + ma signature automatique sous Notes
et dans PB, dans le même temps, je reçois une confirmation comme quoi le mail est bien parti ! (alors qu'il est tout juste ouvert)
Une idée ?
Hors ligne
des scripts, des scripts...
tu peux mettre tes scripts d'appels ?
Hors ligne
mailSession mSes mailReturnCode mRet mailMessage mMsg // Creation de la session mail mSes = create mailSession // Log on session //mRet = mSes.mailLogon(mailNewSession!) // Soit ca, soit la ligne suivante mRet = mSes.maillogon() if mRet <> mailReturnSuccess! then MessageBox("Désolé", 'Erreur au Logon', exclamation!) RETURN end if // création de la structure du mail mMsg.Subject = "Sujet du mail" mMsg.NoteText = "Corps du mail" mMsg.Recipient[1].name = "moi@moi.fr" // Envoi du mail mRet = mSes.mailSend(mMsg) if mRet = mailReturnSuccess! then MessageBox("Merci beaucoup", 'La réponse à été correctement envoyée') RETURN else messagebox("Attention","Une erreur d'envoi est survenue, merci d'envoyer le mail manuellement !,exclamation!") end if mSes.mailLogoff() DESTROY mSes
j'espère que les balises sont correctes !! lol.. Je suis novice
Ajout : Je sais pas qui a changé les couleurs du code ! Mais c'est Joliiii
Modération : J'ai juste rajouté la balise qui va bien --> code=pb
Dernière modification par tcari (05-06-2007 13:59:15)
Hors ligne
salut
tu utilises l'objet mailsession qui se sert de l'interface mapi, hors lotus notes n'est pas
super compatible avec cette norme !!!
il va falloir utiliser l'OLE !!!
Hors ligne
Salut jdobosz,
C'est une bonne idée.. Mais je ne vois ni lien OLE possible, ni contrôle ActiveX utilisable.
arggggg !
Hors ligne
moi j'ai deux objets (PB version 7):
$PBExportHeader$uo_notessess.sru forward global type uo_notessess from oleobject end type end forward global type uo_notessess from oleobject end type global uo_notessess uo_notessess event constructor;this.ConnectToNewObject("Lotus.NotesSession") end event on uo_notessess.create call super::create TriggerEvent( this, "constructor" ) end on on uo_notessess.destroy TriggerEvent( this, "destructor" ) call super::destroy end on event externalexception; action = ExceptionSubstituteReturnValue! returnvalue = -1 end event event error; action = ExceptionSubstituteReturnValue! returnvalue = -1 end event
et aussi
$PBExportHeader$uo_mail.sru forward global type uo_mail from nonvisualobject end type end forward global type uo_mail from nonvisualobject end type global uo_mail uo_mail type variables uo_notessess ioo_NotesSes OLEObject ioo_NotesDb string is_emetteur end variables forward prototypes public function integer of_send (string as_sendto[], string as_copyto[], string as_blindcopyto[], string as_objet, string as_corps, string as_attach[], boolean as_returnreceipt) public function integer of_send (string as_sendto[], string as_copyto[], string as_objet, string as_corps, string as_attach[], boolean as_returnreceipt) public function string of_get_emetteur () public function integer of_init (string as_pwd) end prototypes public function integer of_send (string as_sendto[], string as_copyto[], string as_blindcopyto[], string as_objet, string as_corps, string as_attach[], boolean as_returnreceipt);OLEObject loo_NotesDoc // Notes document object OLEObject loo_NotesBody // Notes body OLEObject rtitem // Rich Text Item Long i,j,k,l,m, nb LONG ll_RetCode STRING ls_Server STRING ls_NotesFile // Name of database to connect to string ls_copyto[] n_cst_string ln string texte[] long ll_cpt long ll_max // Create the document so a message can be sent loo_NotesDoc = ioo_NotesDb.CreateDocument() loo_NotesDoc.ReplaceItemValue("Form", "Memo") /* le sujet */ loo_NotesDoc.ReplaceItemValue("Subject", as_objet) /* le corps du message */ loo_NotesBody = loo_NotesDoc.CreateRichTextItem("body") // découper le texte en ligne ln.of_stringtoarray(as_corps,char(13)+char(10),texte) ll_max = upperbound(texte) for ll_cpt = 1 to ll_max loo_NotesBody.AppendText(texte[ll_cpt]) loo_NotesBody.AddNewLine(1) next /* les fichiers attachés */ ll_max = upperbound(as_attach) for ll_cpt = 1 to ll_max loo_NotesBody.AddNewLine(1) PopulateError(long(loo_NotesBody.EMBEDOBJECT(1454, "", as_attach[ll_cpt])),"Création attachement") IF Error.Number <> 0 THEN SignalError(-1, "Erreur attachement") return -1 End If next /* SendTo */ loo_NotesDoc.ReplaceItemValue("SendTo", as_sendto) /* CopyTo */ if upperbound(as_copyto)>0 then loo_NotesDoc.ReplaceItemValue("CopyTo", as_copyto) /* BlindCopyTo */ if upperbound(as_blindcopyto)>0 then loo_NotesDoc.ReplaceItemValue("BlindCopyTo", as_blindcopyto) if as_returnreceipt then loo_NotesDoc.ReplaceItemValue("ReturnReceipt","1") loo_NotesDoc.ReplaceItemValue("DeliveryReport","1") end if loo_NotesDoc.SAVEMESSAGEONSEND = TRUE loo_NotesDoc.Save( True, False, TRUE) /* Envoyer le message */ PopulateError(long(loo_NotesDoc.SEND (FALSE)),"Envoi du mail") IF Error.Number <> 0 THEN SignalError(-1, "Erreur envoi du mail") return -1 End If Destroy loo_NotesBody Destroy loo_NotesDoc messagebox('Envoi du mail','Message envoyé') return 1 end function public function integer of_send (string as_sendto[], string as_copyto[], string as_objet, string as_corps, string as_attach[], boolean as_returnreceipt);string ls_blindcopyto[] return of_send(as_sendto, as_copyto, ls_blindcopyto, as_objet, as_corps, as_attach, as_returnreceipt) end function public function string of_get_emetteur ();return is_emetteur end function public function integer of_init (string as_pwd);string ls_notespath string ls_NotesFile string ls_server, ls_mailfile int li_ret string ls_titlefont ioo_NotesSes = CREATE uo_notessess if not isvalid(ioo_NotesSes) then messagebox('Attention',"Impossible d'initialiser l'objet Notes") return -1 end if if long(ioo_NotesSes.Initialize(as_pwd))<> 0 then messagebox('Attention','Le mot de passe est incorrect.') return -1 end if ls_mailfile = string(ioo_NotesSes.GetEnvironmentString("MailFile",TRUE)) ls_server = string(ioo_NotesSes.GetEnvironmentString("MailServer",TRUE)) is_emetteur = string(ioo_NotesSes.CommonUserName) if isnumber(string(ioo_NotesSes.getDatabase(ls_server,ls_mailfile))) then messagebox("Attention","Impossible d'ouvrir la base " + ls_mailfile + ". Veuillez contacter le service informatique.") return -1 else ioo_NotesDb = ioo_NotesSes.getDatabase(ls_server,ls_mailfile) end if if not ioo_NotesDb.isopen then messagebox("Attention","Impossible d'ouvrir la base " + ls_mailfile + ". Veuillez contacter le service informatique.") return -1 end if return 1 end function on uo_mail.create call super::create TriggerEvent( this, "constructor" ) end on on uo_mail.destroy TriggerEvent( this, "destructor" ) call super::destroy end on
utilisation pour envoyer un mail depuis la base par défaut du poste client :
uo_mail iuo_mail iuo_mail = CREATE uo_mail iuo_mail.of_init(ls_mot_de_passe) ls_emetteur = iuo_mail.of_get_emetteur() iuo_mail.of_send(ls_destinataire,ls_destinatairecopy,ls_objet,ls_corps,ls_nomfichierattache,false)
Hors ligne
Bon ! Super pour la réponse JDOBOSZ !
Ca marche.. Même s'il a fallu que je fasse 2 ou 3 petits aménagements !
(style ton objet n_cst_string....)..
Mais bon .. Il y a eu plus de peur que de mal !
Donc, si j'ai bien compris, avec Outlook, on peut envoyer des messages via une autre appli sans "tchecker" le mot de passe utilisateur
Alors que dans Lotus, une autre appli doit avoir obligatoirement le mot de passe Lotus pour pouvoir envoyer des mails (style SPAM) ?
Et encors
PS : je précise !! Le but n'est pas de faire du SPAM !! (vu que je suis nouveau ici, je préfère préciser que mes intentions sont pacifiques ! )
Dernière modification par tcari (05-06-2007 15:07:52)
Hors ligne
allez, tu bosserais pas aussi chez AT ?
Hors ligne
Pick Ouic !! Qui es tu ???
Hors ligne
tcari a écrit:
Pick Ouic !! Qui es tu ???
ha ha ha ha ha ha je suis l'oeil de moscou.... donnes le bonjour à patrick...
Hors ligne
La suite par mail ?
(Afin de clore le sujet)
Hors ligne
je te laisse l'honneur de mettre le [RESOLU] sur le titre de ton topic.
Hors ligne
pick ouic a écrit:
allez, tu bosserais pas aussi chez AT ?
Tiens, tiens, tiens, c'est bizarre, j'ai eut le même soupçon que toi ...
// --- Début Off-topic
(tcari, tu dois être un certain Christophe si je ne m'abuse, tu passeras le
bonjour à Stéphanie que je ne connais pas non plus et à Sylvain ...)
// --- Fin Off-topic
Hors ligne
Eh non, Docteur Z ! Je ne suis pas Christophe !
lol
Hors ligne
Bonjour DoctorZ
Je constate que Patrick m'a vendu
Le bon jour est passé à Sylvain...
Christophe
Hors ligne
tcari a écrit:
Ajout : Je sais pas qui a changé les couleurs du code ! Mais c'est Joliiii
on a engagé une demi-douzaine de stagiaires pour se repalucher la couleur de tous les scripts
mais ils ont encore un peu de mal sur les déclarations de variables
le topic correspondant est ici
Hors ligne
Chrnico a écrit:
Bonjour DoctorZ
Je constate que Patrick m'a vendu
Le bon jour est passé à Sylvain...
Christophe
--- Début Off topic
Bonjour,
Et non, personne ne t'as vendu, simple déduction ! Et des derniers membres
(une fille) et une de tes collègues de travail et je me suis dit que vous vous
êtes donné le mot quand au forum ... Vos dates d'inscription sont toutes
récentes ...
Voilà pour l'histoire.
--- Fin du off topic
Hors ligne