Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fusion Mails

11 réponses
Avatar
Z
Bonjour,

Avec word ou on peut ecrire X courriers à la fois en fusionnant un document
type avec un fichier excel par exemple (cela permet en quelques cliques
d'imprimer et d'envoyer un mailing)

Est-ce possible, avec Outlook de faire la meme chose ? De fusionner un
fichier Excel par exemple qui contient les adresses mails et d'autres champs
dans un mail type, et envoyer en quelques cliques le mail type à la liste
d'adresse email contenu dans le fichier Exel de fusion ?

Merci pour votre aide.

10 réponses

1 2
Avatar
Anor
Bonjour,

Z wrote:
| Bonjour,
|
| Avec word ou on peut ecrire X courriers à la fois en fusionnant un
| document type avec un fichier excel par exemple (cela permet en
| quelques cliques d'imprimer et d'envoyer un mailing)
|
| Est-ce possible, avec Outlook de faire la meme chose ? De fusionner un
| fichier Excel par exemple qui contient les adresses mails et d'autres
| champs dans un mail type, et envoyer en quelques cliques le mail type
| à la liste d'adresse email contenu dans le fichier Exel de fusion ?
|
| Merci pour votre aide.

oui mais depuis outlook, c'est un peu compliqué.
Je te suggère de poser la question sur le forum excel, qui
pourra très facilement gérer lui-même l'envoi d'un mail à chaque contact
qui se trouve dans la feuille excel, et ceci en pilotant un logiciel de messagerie
outlook par automation au autre par MAPI.

Quelques éléments de réponse sur le code vba à employer :

http://memoaccess.free.fr/outlook.htm

Seule la méthode de lecture des adresses e-mail va changer :
lecture des valeurs d'un champ d'une table dans access (vba dans access ou outlook)
lecture des valeurs d'une plage de cellules dans excel (vba dans excel ou outlook)
lecture des valeurs des lignes d'un fichier texte (vba dans outlook)

Si la 3ème solution t'intéresse, je peux peut-être te proposer un bout de code
(qui reste à faire), mais ça ne doit pas être trop compliqué.

--
à+
Arnaud
--------------------------------------------------
Access Memorandum : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------
Avatar
Z
lecture des valeurs des lignes d'un fichier texte (vba dans outlook)

Si la 3ème solution t'intéresse, je peux peut-être te proposer un bout de
code

(qui reste à faire), mais ça ne doit pas être trop compliqué.


Oui ca peut m'interesser car en fait apres je veux automatiser cela à partir
d'un application en VB. Mon but est d'envoyer des mails à partir de
d'adresses emails dans une base de données. Mais je me disais que je
pourrais créer un fichier (text, excel...) et fusionner cela avec un mail...
(en automatique...)

Merci beaucoup.

Avatar
Anor
Bonjour,

Voilà donc une solution.
Dans outlook , tu tapes Alt+F11, puis dans l'éditeur visual basic
(projet VbaProject.OTM) tu colles ceci :

'<CODE>
Sub PublipostageOutlook()
On Error Resume Next
Dim txtLine As String
Dim LeFichier As String
Dim F As Integer

Dim Ol_App As Outlook.Application
Dim Ol_Item As Outlook.MailItem

Set Ol_App = GetObject(, "Outlook.Application")
If Ol_App Is Nothing Then: Set Ol_App = CreateObject("Outlook.Application")

LeFichier = "c:fichier.txt"
F = FreeFile
Open LeFichier For Input As #F
If Err.Number > 0 Then: GoTo Fin
Do While Not EOF(F)
Line Input #F, txtLine
If InStr(1, txtLine, "@") > 1 Then
Set Ol_Item = Ol_App.CreateItem(olMailItem)
With Ol_Item
.To = txtLine
.Subject = "L'objet du message"
.Body = "Le corps du message"
'.Attachments.Add "F:Mes Documentsfichier.jpg"
.Save
.Send
End With
End If
Loop
Close #F
Fin:
Set Ol_Item = Nothing
Set Ol_App = Nothing

End Sub

'</CODE>

Voilà, tu te positionnes sur la première ligne,
tu mets le bon chemin du fichier txt qui contient les adresses e-mail,
et tu appuies sur la touche F5 ou F8 (pas à pas).

Bon je sens que tu vas revenir me dire qu'un message de sécurité outlook te gêne,
alors avant de te proposer autre chose, dis nous :
ta Version de windows
ta Version de outlook

Si en plus tu peux nous dire si dans le menu Outils > Références de l'éditeur visual basic,
tu as la possibilité de cocher une référence qui s'appelle
microsoft CDO for exchange 2000 librairy
ou
microsoft CDO for windows 2000 librairy
ça serait un plus.

--
à+
Arnaud
--------------------------------------------------
Access Memorandum : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------



Z wrote:
|| lecture des valeurs des lignes d'un fichier texte (vba dans outlook)
||
|| Si la 3ème solution t'intéresse, je peux peut-être te proposer un
|| bout de code (qui reste à faire), mais ça ne doit pas être trop
|| compliqué.
|
| Oui ca peut m'interesser car en fait apres je veux automatiser cela à
| partir d'un application en VB. Mon but est d'envoyer des mails à
| partir de d'adresses emails dans une base de données. Mais je me
| disais que je pourrais créer un fichier (text, excel...) et fusionner
| cela avec un mail... (en automatique...)
|
| Merci beaucoup.
Avatar
Anor
Bonjour,

Anor wrote:
|
| Bon je sens que tu vas revenir me dire qu'un message de sécurité
| outlook te gêne,


Y'a plus personne ?
Bon, alors pour mes fans :o), je poste une solution CDO qui contourne le message de sécurité
Outlook.

JièL, je compte sur toi pour la tester celle-là ;-)

Pas de référence à cocher du moment que la cdosys.dll ou cdoex.dll figure dans le dossier
système.
Ah oui, inconvénient, le message n'est pas sauvegardé dans les éléments envoyés, ça doit être
faisable
mais pas encore trouvé comment passer l'objet de cdo à outlook.mailitem (pas trop cherché
d'ailleurs)

Le fichier c:fichier.txt doit exister bien évidemment, avec des adresses mail valides, les unes
sous les autres.
Toujours Alt+F11, puis coller :

Option Explicit

Sub PublipostageCDO()
On Error Resume Next
Dim txtLine As String
Dim LeFichier As String
Dim F As Integer

' Déclaration tardive ("Late Binding")
Dim CDO_Message As Object

LeFichier = "c:fichier.txt"
F = FreeFile
Open LeFichier For Input As #F
Do While Not EOF(F)
Line Input #F, txtLine
If InStr(1, txtLine, "@") > 1 Then

With CreateObject("CDO.Message")

.To = txtLine
.from = """Emetteur"""
.Subject = "L'objet du message CDO"
.TextBody = "Le Corps du message CDO"
'.AddAttachment ("c:fichier.txt")
.Send
End With

End If
Loop
Close #F
Set CDO_Message = Nothing
End Sub

Voilà, ceci dit, pas la peine de croire qu'on peut spammer tout le monde incognito :
on est quand même identifiable dans les propriétés du message reçu :

Return-Path:
Delivered-To:
Received: (qmail 24672 invoked from network); 2 May 2004 10:48:32 -0000
Received: from Arnaud(lns-vlq-16-82-255-27-xxx.adsl.proxad.net [82.255.27.xxx])
by postfix3-2.free.fr (Postfix) with SMTP id 55E56C16D
/= mon adresse Adresse IP au moment de l'envoi !!/
X-Mailer: Microsoft CDO for Windows 2000

--
à+
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Access Memorandum : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------
Avatar
Grég
Bonjour/soir,

Chez moi ça donne: "Erreur d'exécution '-1456209421 (9ac401f3)' /n Erreur
interne de l'application" sur la création du Cdo.message :-(

--
Grég


"Anor" <http://memoaccess.free.fr/anor/email.htm> a écrit dans le message de
news:4094d3e2$0$20748$
Bonjour,

Anor wrote:
|
| Bon je sens que tu vas revenir me dire qu'un message de sécurité
| outlook te gêne,


Y'a plus personne ?
Bon, alors pour mes fans :o), je poste une solution CDO qui contourne le
message de sécurité

Outlook.

JièL, je compte sur toi pour la tester celle-là ;-)

Pas de référence à cocher du moment que la cdosys.dll ou cdoex.dll figure
dans le dossier

système.
Ah oui, inconvénient, le message n'est pas sauvegardé dans les éléments
envoyés, ça doit être

faisable
mais pas encore trouvé comment passer l'objet de cdo à outlook.mailitem
(pas trop cherché

d'ailleurs)

Le fichier c:fichier.txt doit exister bien évidemment, avec des adresses
mail valides, les unes

sous les autres.
Toujours Alt+F11, puis coller :

Option Explicit

Sub PublipostageCDO()
On Error Resume Next
Dim txtLine As String
Dim LeFichier As String
Dim F As Integer

' Déclaration tardive ("Late Binding")
Dim CDO_Message As Object

LeFichier = "c:fichier.txt"
F = FreeFile
Open LeFichier For Input As #F
Do While Not EOF(F)
Line Input #F, txtLine
If InStr(1, txtLine, "@") > 1 Then

With CreateObject("CDO.Message")

.To = txtLine
.from = """Emetteur"""
.Subject = "L'objet du message CDO"
.TextBody = "Le Corps du message CDO"
'.AddAttachment ("c:fichier.txt")
.Send
End With

End If
Loop
Close #F
Set CDO_Message = Nothing
End Sub

Voilà, ceci dit, pas la peine de croire qu'on peut spammer tout le monde
incognito :

on est quand même identifiable dans les propriétés du message reçu :

Return-Path:
Delivered-To:
Received: (qmail 24672 invoked from network); 2 May 2004 10:48:32 -0000
Received: from Arnaud(lns-vlq-16-82-255-27-xxx.adsl.proxad.net
[82.255.27.xxx])

by postfix3-2.free.fr (Postfix) with SMTP id 55E56C16D
/= mon adresse Adresse IP au moment de l'envoi !!/
X-Mailer: Microsoft CDO for Windows 2000

--
à+
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Access Memorandum : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------




Avatar
Anor
Salut,

Grég wrote:
| Bonjour/soir,
|
| Chez moi ça donne: "Erreur d'exécution '-1456209421 (9ac401f3)' /n
| Erreur interne de l'application" sur la création du Cdo.message :-(
|

Dans le menu outils > références de l'éditeur visual basic, as tu la possibilité de
cocher microsoft CDO quelque chose ?

le code que tu as collé compile bien ? (menu débogage > compiler)

tu as quelle version de windows ?

Tu peux essayer ce code si tu veux après avoir coché la référence + compilé :

Sub PublipostageCDOEarly()
On Error Resume Next
Dim txtLine As String
Dim LeFichier As String
Dim F As Integer

'Déclaration précoce ("Early Binding")
'Cocher la référence à Microsoft CDO for Exchange 2000 librairy
' ou Microsoft CDO for Windows 2000 librairy

Dim CDO_Message As New CDO.Message

LeFichier = "c:fichier.txt"
F = FreeFile
Open LeFichier For Input As #F
Do While Not EOF(F)
Line Input #F, txtLine
If InStr(1, txtLine, "@") > 1 Then

With CDO_Message

.To = txtLine
.from = """Emetteur"""
.Subject = "L'objet du message CDO"
.TextBody = "Le Corps du message CDO"
'.AddAttachment ("c:fichier.txt")
.Send
End With

End If
Loop
Close #F
Set CDO_Message = Nothing

End Sub


--
à+
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Access Memorandum : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------
Avatar
Grég
Anor,

Désolé, c'est CDO qui suite a une des multiples mises à jour a cessé de
fonctionner sur mon vieux système.

--
Grég


"Anor" <http://memoaccess.free.fr/anor/email.htm> a écrit dans le message de
news:40953a46$0$20749$
Salut,

Grég wrote:
| Bonjour/soir,
|
| Chez moi ça donne: "Erreur d'exécution '-1456209421 (9ac401f3)' /n
| Erreur interne de l'application" sur la création du Cdo.message :-(
|

Dans le menu outils > références de l'éditeur visual basic, as tu la
possibilité de

cocher microsoft CDO quelque chose ?

le code que tu as collé compile bien ? (menu débogage > compiler)

tu as quelle version de windows ?

Tu peux essayer ce code si tu veux après avoir coché la référence +
compilé :


Sub PublipostageCDOEarly()
On Error Resume Next
Dim txtLine As String
Dim LeFichier As String
Dim F As Integer

'Déclaration précoce ("Early Binding")
'Cocher la référence à Microsoft CDO for Exchange 2000 librairy
' ou Microsoft CDO for Windows 2000 librairy

Dim CDO_Message As New CDO.Message

LeFichier = "c:fichier.txt"
F = FreeFile
Open LeFichier For Input As #F
Do While Not EOF(F)
Line Input #F, txtLine
If InStr(1, txtLine, "@") > 1 Then

With CDO_Message

.To = txtLine
.from = """Emetteur"""
.Subject = "L'objet du message CDO"
.TextBody = "Le Corps du message CDO"
'.AddAttachment ("c:fichier.txt")
.Send
End With

End If
Loop
Close #F
Set CDO_Message = Nothing

End Sub


--
à+
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Access Memorandum : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------




Avatar
Anor
re,

Grég wrote:
| Anor,
|
| Désolé, c'est CDO qui suite a une des multiples mises à jour a cessé
| de fonctionner sur mon vieux système.


ok merci quand même d'avoir essayé de tester la manip ;-)
a+
Arnaud
Avatar
Dav
Rebonjour,

Voilà, tu te positionnes sur la première ligne,
tu mets le bon chemin du fichier txt qui contient les adresses e-mail,
et tu appuies sur la touche F5 ou F8 (pas à pas).


Alors j'ai pu tout tester et ca marche tres bien :-)

Bon je sens que tu vas revenir me dire qu'un message de sécurité outlook
te gêne,

alors avant de te proposer autre chose, dis nous :
ta Version de windows
ta Version de outlook


En fait ton programme est pas mal, mais je trouve que c'est peut etre plus
simple de faire un modele de fusion dans Word et de lancer la fusion par
mail (grace à Outlook) car ca permet de faire le corps du message plus
evolué (polices, gras, images....)

Par contre il y a se probleme de message de securité Outlook sur certaines
versions, tu as raison... Il n'y a t il pas un moyen de l'enlever via une
macro ou d'un autre moyen ?

Merci encore

Avatar
Anor
Bonjour,

Dav wrote:
|
|| Bon je sens que tu vas revenir me dire qu'un message de sécurité
|| outlook te gêne, alors avant de te proposer autre chose, dis nous :
|| ta Version de windows
|| ta Version de outlook

Tiens cette prose me rappelle quelque-chose et OE ne détecte pas
cette enfilade comme l'une de celles auxquelles j'ai participé :'-(

| En fait ton programme est pas mal, mais je trouve que c'est peut etre
| plus simple de faire un modele de fusion dans Word et de lancer la
| fusion par mail (grace à Outlook) car ca permet de faire le corps du
| message plus evolué (polices, gras, images....)

Hum...
La mise en page est conservée ?
Je ne connais pas très bien cette fonctionnalité de Word, mais pour passer
d'un .doc ou .rtf vers un mail, il y a une conversion en .html et les
images ça pose souvent problème ....

| Par contre il y a se probleme de message de securité Outlook sur
| certaines versions, tu as raison... Il n'y a t il pas un moyen de
| l'enlever via une macro ou d'un autre moyen ?
|
| Merci encore

hum....
le plus simple il me semble, dans le cas du publipostage est qu'un petit programme résident
en mémoire intercepte la boite de dialogue clique sur "oui" automatiquement....
http://www.express-soft.com/ftp/ClickYesSetup.exe

à+
--
Arnaud
--------------------------------------------------
Site Perso : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------
1 2