Outlook et VFP message d'alerte .....

rubix2 Messages postés 22 Date d'inscription jeudi 3 novembre 2005 Statut Membre Dernière intervention 27 août 2007 - 29 nov. 2005 à 15:54
cs_survi Messages postés 12 Date d'inscription mercredi 8 mars 2006 Statut Membre Dernière intervention 12 décembre 2006 - 17 mars 2006 à 08:46
(re) bonjour,

C'est + un probleme sur outlook que sur Fox, mais bon je pose quand même la question quelque fois que quelqu'un aurait déja été confronté au problème .....
J'ai lu les contributions de Mike sur atoufox.org en ce qui concerne l'envoi de mail par programmation fox, ça marche très bien voici le code:

#DEFINE MAILITEM 0
#DEFINE IMPORTANCELOW 0
#DEFINE IMPORTANCENORMAL 1
#DEFINE IMPORTANCEHIGH 2


oOutLookObject = CreateObject('Outlook.Application')


oEmailItem = oOutLookObject.CreateItem(MAILITEM)


WITH oEmailItem
*.Recipients.Add([mailto:'moe@3stooges.com' 'moe@3stooges.com']) && uses the Recipients collection
.To="[mailto:destinataire@toto.fr destinataire@toto.fr]"
.Subject = 'Test TM'
.Importance = IMPORTANCEHIGH
.Body = 'TEST Connection This is easy!'
*.Attachments.Add ("si on a un fichier à attacher.txt")
.Send
ENDWITH


RELEASE oEmailItem


RELEASE oOutLookObject

voila quand je lance mon prg., outlook me génére une boite d'alerte où il y a écrit ceci:
! un programme tente d'envoyer automatiquement du courrier électronique en votre nom. L'autorisez vous à poursuivre ?
Si cette action est inatendue, il se peut qu'il s'agisse d'un virus: dans ce cas choisissez Non.
j'ai une barre de défilement, et je dois attendre 5 secondes avant de cliquer sur oui pour confirmer.

Le problème est que si je veux envoyer 8 mails à la suite je dois me taper la boite d'alerte 8 fois et reconfirmer !
J'ai été voir dans les options d'Outlook, mais je ne vois pas... Si qu'elqu'un peux m'éclairer ?

Nico

5 réponses

ThierryPerretier Messages postés 103 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 6 juillet 2006 1
29 nov. 2005 à 17:12
Pour des raisons de sécurité, cet écran de confirmation n'est pas désactivable dans Outlook.

Essayes ce petit utilitaire http://www.contextmagic.com/express-clickyes/

Sinon, utilises une autre méthode pour envoyer des messages.(connexion directe SMTP, par exemple)
0
rubix2 Messages postés 22 Date d'inscription jeudi 3 novembre 2005 Statut Membre Dernière intervention 27 août 2007
30 nov. 2005 à 09:31
Merci , J'ai testé l'outil et ça fonctionne bien, cependant, c'est vrai que j'aimerais avoir un truc un peu plus clean .Je cherche un petit bout de code pour envoyer un mail avec attachement. J'ai lu à peu près toutes les contributions sur ce site et atoufox mais parfois des personnes postent des trucs super long où je ne comprends rien ! Enfin voilà ce que j'ai trouvé:

Le premier code utilise cdo ça fonctionne pas sur mon poste ,je crois qu'il y a des dll ou autres trucs à télécharger(est-ce que c'est payant ?) pour que ça fonctionne:

&& Comment envoyer un simple courriel.
oMSG = CREATEOBJECT("cdo.message")
oMSG.To = "[mailto:me@nowhere.com me@nowhere.com]"
oMSG.From = "me"
oMSG.Subject = "Hello Email"
oMSG.TextBody = "This is an easy way to create an email"
oMSG.Send()

Le deuxième code utilise winsock, je sais pas si sa fonctionne j'ai pas testé, est-ce que dois juste changer l'adresse ip par mon SMTP vu que je bosse dans une entreprise, je pense que protocol à 0 et remotePort à 25 ç a doit être bon:

#Define crlf Chr(13)+Chr(10)


oWinsock = Createobject("MSWinsock.Winsock.1")
oWinsock.Protocol = 0 && 0=TCP Protocol, 1=UDP
oWinsock.RemoteHost = '65.39.231.158'&&"mail.suntelecom.net"
oWinsock.RemotePort = 25 && smtp port.
oWinsock.Connect
=Inkey(.25)
oWinsock.senddata("Hello myself.com" + crlf) && You can change this string to anything else..
line1 = "mail from:" + Chr(32) + "[mailto:moi@somewhere.net moi@somewhere.net]" + crlf
line2 = "rcpt to:" + Chr(32) + "[mailto:you@hotmail.com you@hotmail.com]"+ crlf
line3 = "Date:" + Chr(32) + Dtoc(Date()) + crlf
line4 = "From:" + Chr(32) + "[mailto:moi@somewhere.net moi@somewhere.net]" + crlf
line5 = "To:" + Chr(32) + "[mailto:you@hotmail.com you@hotmail.com]" + crlf
line6 = "Subject:" + Chr(32) + "Test winsock mail" + crlf
line7 = "This is a test body of the message" + crlf
line9 = "X-Mailer: Mike's Test mail" + crlf
line8 = line4 + line3 + line9 + line5 + line6 + line7
oWinsock.senddata(line1)
=Inkey(.25)
oWinsock.senddata(line2)
=Inkey(.25)
oWinsock.senddata(line8 + "." + crlf)
=Inkey(.25)
oWinsock.senddata("quit")
=Inkey(.25)
oWinsock.Close()

Voilà quelle méthode est la meilleure sachant que je cherche un bout de code simple et court ?, j'ai pas besoin de faire de test si une connexion existe, si internet est installé etc ,etc ..... tant pis pour le plantage !

Nico
0
ThierryPerretier Messages postés 103 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 6 juillet 2006 1
30 nov. 2005 à 12:31
J'ai une préférence pour l'utilisation de la classe Winsock de Francis.

http://www.atoutfox.org/articles.asp?ACTION=FCONSULTER&ID=0000000187
http://www.xfrx.fr/vfpwinsock/index.asp

L'avantage, c'est qu'il n'y a rien à installer ou à configurer sur le poste client.Il n'utilise pas le contrôle ActiveX (MSWinsock.Winsock.1) mais directement une API Windows (ws2_32.dll).
Il faut seulement avoir accès à un serveur SMTP.
0
Mike Gagnon Messages postés 381 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 24 octobre 2013 2
1 déc. 2005 à 19:24
Rubix2

Pour ce qui est de CDO, l'article que j'ai ecrit indique bien "À noter que le code assume que le service SMTP est actif (ou un serveur SMTP externe existe)."

Tu as un service SMTP ou un serveur SMTP?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_survi Messages postés 12 Date d'inscription mercredi 8 mars 2006 Statut Membre Dernière intervention 12 décembre 2006
17 mars 2006 à 08:46
Très bon code


Bien expliqué et commenté


De Nombreux exemple simple a comprendre


Cependant je rencontre de nombreux problèmes






1°PB


Dans l’ ObjectVfp_WinSock_Send_Mail


Fonction Send


La ligne de code this.data = this.data + "Date: " + This.TtoC822(Datetime(),0) + CRLF


La Fonction TtoC822 pose un pb de parametres


Message ErrNo PARAMETER statements Found






2° PB
Dans


FUNCTION Connect()


LOCAL cBuffer, cPort, cHost, lResult


THIS.RemoteHostIP = THIS.GetIP(this.RemoteHost)


IF EMPTY(THIS.RemoteHostIP)


RETURN .F.


ENDIF


THIS.SocketHandle = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)


if THIS.SocketHandle = SOCKET_ERROR


RETURN .F.


ENDIF


THIS.State = 6


cPort = THIS.num2word(htons(this.RemotePort))


nHost = inet_addr(THIS.RemoteHostIP)


cHost = THIS.num2dword(nHost)


cBuffer = THIS.num2word(AF_INET) + cPort + cHost + Repli(Chr(0),8)


lResult = (ws_connect(THIS.SocketHandle, @cBuffer, Len(cBuffer))=0)


IF lResult


THIS.State = 7


ELSE


THIS.State = 0


ENDIF


RETURN lResult


j'ai


THIS.RemoteHostIPest renseignié


THIS.SocketHandle est renseignié


cPortreste toujours vide


lResult reste toujours .F. ce qui me génère le message « Impossible de se connecter au serveur de Mail »






Ma question est donc la suivantes


Le pb 2 est-il la conséquence du pb1?


Comment résoudre cela ?

D'avance merci
0
Rejoignez-nous