pekeo -=the ex of pekinio=-
-
5 sept. 2001 à 15:08
cs_Patrice99
Messages postés1221Date d'inscriptionjeudi 23 août 2001StatutMembreDernière intervention 9 septembre 2018
-
14 juil. 2002 à 12:26
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_Patrice99
Messages postés1221Date d'inscriptionjeudi 23 août 2001StatutMembreDernière intervention 9 septembre 2018 14 juil. 2002 à 12:26
Attention : msmapi32.ocx plante parfois sous Windows 9x (il semble bien marcher sous Win2k), parfois il provoque l'erreur n° 30000 : "Erreur au chargement de la DLL MAPI". Même un faisant un package d'installation, avec VB6 Setup Wizard ou bien avec Visual Studio Installer 1.1, cela ne résout pas le problème : l'envoie de mail risque de ne pas marcher dans un Windows 98 vierge de tout logiciel spécifique.
Quand il n'y a pas de fichier joint au mail, on pourrait remplacer l'ocx par une API très simple, mais les sauts de lignes ne sont pas supportés et il faut valider chaque envoi :
' API pour la sub EnvoyerEMail
Private Declare Function ShellExecute& Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hwnd&, ByVal lpOperation$, _
ByVal lpFile$, ByVal lpParameters$, ByVal lpDirectory$, _
ByVal nShowCmd&)
Public Sub EnvoyerEMail(sAdresse$, Optional sSujet$, _
Optional sContenu$, Optional sCC$, Optional sCCC$)
Dim sCmd$
' Créé la chaîne de commande avec les paramètres fournis
If Len(sSujet) Then sCmd = "&Subject=" & sSujet
' Pb : les sauts de ligne dans le contenu ne sont pas gérés !?
If Len(sContenu) Then sCmd = sCmd & "&Body=" & sContenu
' Ne marche pas avec Outlook Express :
'If Len(sFichierJoint) Then sCmd = sCmd & "&Attach='" & sFichierJoint & "'"
If Len(sCC) Then sCmd = sCmd & "&CC=" & sCC ' Copie carbonne
If Len(sCCC) Then sCmd = sCmd & "&BCC=" & sCCC
' Remplace le premier '&' (s'il existe) par un '?'
If Mid(sCmd, 1, 1) "&" Then Mid(sCmd, 1, 1) "?"
' Ajoute la commande 'mailto:' et l'adresse
sCmd = "mailto:" & sAdresse & sCmd
' Execute la commande par l'API
Const SW_SHOWNORMAL& = 1
Call ShellExecute(0, "open", sCmd, _
vbNullString, vbNullString, SW_SHOWNORMAL)
End Sub
cs_Patrice99
Messages postés1221Date d'inscriptionjeudi 23 août 2001StatutMembreDernière intervention 9 septembre 2018 26 avril 2002 à 08:50
Note : il est inutile de fermer outlook, il suffit de mettre à False les 2 options suivantes dans le ctrl MAPISession :
DownLoadMail = False
LogonUI = False
Et l'envoi de mail ne fait plus planter Outlook, on peut même préparer l'envoi de mail en hors-ligne sans problème.
cs_Patrice99
Messages postés1221Date d'inscriptionjeudi 23 août 2001StatutMembreDernière intervention 9 septembre 2018 3 avril 2002 à 13:45
Ya du nouveau ! allez voir www.vbfrance.com/listeauteur2.asp?Val=5457
ce sont les contributions de buisson.sf@caramail.com sur les sms
apparement, il a trouvé un nouveau serveur de sms gratuit :
Form2.WebBrowser1.Navigate "http://www.freetexto.com/ModuleSend.php3?from=" & Text1.Text & "&to=" & Text2.Text & "&msg=" & Text3.Text & ""
cs_Patrice99
Messages postés1221Date d'inscriptionjeudi 23 août 2001StatutMembreDernière intervention 9 septembre 2018 16 févr. 2002 à 08:43
note : les SMS ne marchent plus depuis Octobre 2001, car le serveur web utilisé ne sert plus les SMS gratuitement, il faut en trouver un autre...
Le batch : ça sert pour pourvoir revenir en arrière en cas de modification du code source !
Bonne nouvelle : les SMS marchent !
en tout cas au moins 1, car pour plusieurs SMS consécutifs, je ne sais pas si la pause de 2 secondes qui figurait dans le code src original est suffisant. Il faudrait peut être plutôt récupérer un évènement Web.NavigateComplete après l'appel de Web.Navigate. Au fait, je n'ai pas de téléphone mobile, alors si quelqu'un veut faire le test... il faut parfois attendre une journée pour recevoir le SMS !
Mauvaise nouvelle : les destinataires des SMS risquent de recevoir ... de la pub !!!
bah ! si on regarde le bon coté des choses, pour que le service soit pérenne et donc qu'il reste gratuit pour nous, il faut bien qu'il y en ait qui paye !
Pour information :
MSDN : "you can use the Busy property of the WebBrowser control to wait until the browser has finished loading the document. Also, you can use the NavigateComplete event of the WebBrowser control to signal that the document has finished loading."
Donc :
Web1.Navigate sServeurSMS & "?num=" & sMobile & "&mess=" & Me!TxtMessage
Do
DoEvents
Loop While Web1.Busy
J'ai essayé, mais il reste toujours occupé à partir du second SMS, il faut peut être réinitialiser quelque chose. Autre solution :
bNavigateComplete = False ' Variable globale au formulaire
Web1.Navigate sServeurSMS & "?num=" & sMobile & "&mess=" & Me!TxtMessage
Do
DoEvents
Loop While Not bNavigateComplete
Private Sub Web1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
bNavigateComplete = True
End Sub
Même résultat ! ça serait bien si ça marchait quand même !
14 juil. 2002 à 12:26
Quand il n'y a pas de fichier joint au mail, on pourrait remplacer l'ocx par une API très simple, mais les sauts de lignes ne sont pas supportés et il faut valider chaque envoi :
' API pour la sub EnvoyerEMail
Private Declare Function ShellExecute& Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hwnd&, ByVal lpOperation$, _
ByVal lpFile$, ByVal lpParameters$, ByVal lpDirectory$, _
ByVal nShowCmd&)
Public Sub EnvoyerEMail(sAdresse$, Optional sSujet$, _
Optional sContenu$, Optional sCC$, Optional sCCC$)
Dim sCmd$
' Créé la chaîne de commande avec les paramètres fournis
If Len(sSujet) Then sCmd = "&Subject=" & sSujet
' Pb : les sauts de ligne dans le contenu ne sont pas gérés !?
If Len(sContenu) Then sCmd = sCmd & "&Body=" & sContenu
' Ne marche pas avec Outlook Express :
'If Len(sFichierJoint) Then sCmd = sCmd & "&Attach='" & sFichierJoint & "'"
If Len(sCC) Then sCmd = sCmd & "&CC=" & sCC ' Copie carbonne
If Len(sCCC) Then sCmd = sCmd & "&BCC=" & sCCC
' Remplace le premier '&' (s'il existe) par un '?'
If Mid(sCmd, 1, 1) "&" Then Mid(sCmd, 1, 1) "?"
' Ajoute la commande 'mailto:' et l'adresse
sCmd = "mailto:" & sAdresse & sCmd
' Execute la commande par l'API
Const SW_SHOWNORMAL& = 1
Call ShellExecute(0, "open", sCmd, _
vbNullString, vbNullString, SW_SHOWNORMAL)
End Sub
26 avril 2002 à 08:50
DownLoadMail = False
LogonUI = False
Et l'envoi de mail ne fait plus planter Outlook, on peut même préparer l'envoi de mail en hors-ligne sans problème.
3 avril 2002 à 13:45
ce sont les contributions de buisson.sf@caramail.com sur les sms
apparement, il a trouvé un nouveau serveur de sms gratuit :
Form2.WebBrowser1.Navigate "http://www.freetexto.com/ModuleSend.php3?from=" & Text1.Text & "&to=" & Text2.Text & "&msg=" & Text3.Text & ""
16 févr. 2002 à 08:43
6 sept. 2001 à 10:09
Bonne nouvelle : les SMS marchent !
en tout cas au moins 1, car pour plusieurs SMS consécutifs, je ne sais pas si la pause de 2 secondes qui figurait dans le code src original est suffisant. Il faudrait peut être plutôt récupérer un évènement Web.NavigateComplete après l'appel de Web.Navigate. Au fait, je n'ai pas de téléphone mobile, alors si quelqu'un veut faire le test... il faut parfois attendre une journée pour recevoir le SMS !
Mauvaise nouvelle : les destinataires des SMS risquent de recevoir ... de la pub !!!
bah ! si on regarde le bon coté des choses, pour que le service soit pérenne et donc qu'il reste gratuit pour nous, il faut bien qu'il y en ait qui paye !
Pour information :
MSDN : "you can use the Busy property of the WebBrowser control to wait until the browser has finished loading the document. Also, you can use the NavigateComplete event of the WebBrowser control to signal that the document has finished loading."
Donc :
Web1.Navigate sServeurSMS & "?num=" & sMobile & "&mess=" & Me!TxtMessage
Do
DoEvents
Loop While Web1.Busy
J'ai essayé, mais il reste toujours occupé à partir du second SMS, il faut peut être réinitialiser quelque chose. Autre solution :
bNavigateComplete = False ' Variable globale au formulaire
Web1.Navigate sServeurSMS & "?num=" & sMobile & "&mess=" & Me!TxtMessage
Do
DoEvents
Loop While Not bNavigateComplete
Private Sub Web1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
bNavigateComplete = True
End Sub
Même résultat ! ça serait bien si ça marchait quand même !
5 sept. 2001 à 15:08