Envoi de mail

jeff1494

XLDnaute Occasionnel
Bonjour à tous;
Je suis en train de développer un fichier Excel qui contient une liste de favoris Internet.
Ce fichier sera distribué aux membres de mon club de maquette. Le principe est que chacun des membres peut ajouter de nouveaux favoris. Cette partie de la gestion ne me pose pas de problèmes. Là où cela coince est lorsque le membre veut me faire parvenir un mail avec un fichier excel contenant une feuille avec ses nouveaux favoris.
Pour générer l'envoi du mail j'utilise le code suivant :
Code:
                Dim iMsg As Object
                Dim iConf As Object
                Dim strbody As String
                Dim Flds As Variant
            
                Set iMsg = CreateObject("CDO.Message")
                Set iConf = CreateObject("CDO.Configuration")
            
                    iConf.Load -1    ' CDO Source Defaults
                    Set Flds = iConf.Fields
                    ' Configuration des valeurs pour l'envoi du mail
                    With Flds
                        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
                        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") _
                                       = "smtp.orange.fr"
                        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
                        .Update
                    End With
            
                strbody = "Salut Jeff ;" & vbNewLine & vbNewLine & _
                          "Voici quelques favoris supplémentaires à intégrer dans la base." & vbNewLine & _
                          "Sur ce bonne journée et A+."
            
                With iMsg
                    Set .Configuration = iConf
                    .To = Liste
                    .CC = ""
                    .BCC = ""
                    .From = Exped
                    .Subject = "Nouveaux favoris à intégrer"
                    .TextBody = strbody
                    .AddAttachment Rep & "\" & nomfich
                    .Send
                End With
Ma question concerne la ligne :

.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") _
= "smtp.orange.fr"

Dans mon cas et pour faire mes tests, étant chez Orange comme fournisseur d'accès, j'ai codé en DUR le serveur smtp d'Orange.
Or chacun de mes membres est très certainement chez un FAI différent.
Ma question est donc :

Comment puis-je récupérer son serveur SMTP, de manière transparente pour lui, et remplacer mon code en dur par une variable contenant ce fameux serveur.

J'espère avoir été assez clair, si ce n'est pas le cas n'hésitez pas à me le dire.
EN attendant bonne journée à tous.
Cordialement.
 
G

Guest

Guest
Re : Envoi de mail

Bonjour Jeff1494,

Le problème avec CDO est que les configurations des serveurs smtp sont tellements différentes les unes des autres que c'est quasi impossible de paramétrer une connexion valable pour tous.

Peut-être serait-il plus judicieux de trouver une solution plus commune. Le forum regorge de ce genre de macro d'envoi de mail.

A+
 

jeff1494

XLDnaute Occasionnel
Re : Envoi de mail

Bonsoir à tous;
Ben j'ai trouvé un moyen pour résoudre mon problème.
En fait je demande à l'utilisateur de saisir son fournisseur d'accès Internet depuis une liste récupérée sur le net. Dans cette liste j'ai le nom du fournisseur, et en regard le nom de ses serveurs pop, smtp, et imap si existant.
Après pas de soucis une boucle pour retrouver le serveur smtp, et le tour est joué, il suffit de la passer en argument.
Si quelqu'un a besoin d'aide sur ma solution, passez en MP.
En tout cas merci à Hasco.
Sur ce bonne soirée et A+.
 

jeff1494

XLDnaute Occasionnel
Re : Envoi de mail

Bonjour à tous;
A JCGL; en effet à la relecture de mon post, je tiens à vous présenter à tous mes excuses.

Mon idée était de ne pas polluer le post. Par contre je répondrais à toute demande faite au travers du forum, dans la mesure de mes modestes connaissances.

Quant au merci à Hasco, je ne voulais pas le blesser ni lui ni quiconque d'autre, car avec sa réponse j'ai pu chercher une solution dans d'autres voies que celle que j'ai prise.

Encore une fois je vous présente toutes mes excuses si j'ai froissé certains d'entre vous.

Donc pour en revenir à la solution que j'ai adopté, voici en pièce jointe le fichier xls contenant une liste (peut-être pas à jour) des principaux fournisseurs d'accès que j'ai glané sur le net.

Sur ce bonne journée à tous.
 

Pièces jointes

  • FAI.xls
    32.5 KB · Affichages: 245

krystof_ii

XLDnaute Occasionnel
Pb des retours à la ligne

Bonjour à tous,
Grace au forum (j'y ai encore trouvé réponse à mon pb :D) j'ai réussi à inclure un envoi de courriel automatique.

Par contre, dans le corps du message, je n'arrive pas à faire des "retours à la ligne" (ou "saut de paragraphes").

le code que j'utilise est :
Option Explicit

Sub Envoi_courriel()
Dim iMsg As Object
Dim iConf As Object
Dim c, cellule As Range
Dim Destinataires, Emetteurs, Sujet, CorpsDuMsg As String
Dim Flds As Variant

'Définition destinataires
Set c = Sheets("Liste AT-SD").Range("Destinataires_courriel")
For Each cellule In c
If Destinataires = "" Then
Destinataires = cellule.Value
Else: Destinataires = Destinataires & ";" & cellule.Value
End If
Next
'Définition Emetteurs
Set c = Sheets("Liste AT-SD").Range("Emetteurs_courriel")
For Each cellule In c
If Emetteurs = "" Then
Emetteurs = cellule.Value
Else: Emetteurs = Emetteurs & ";" & cellule.Value
End If
Next
'Définition du sujet
Sujet = Sheets("Liste AT-SD").Range("Sujet_courriel").Value
'Définition du corps du message
Sheets("saisie AT-SD").Select
Range("E3").Select
Do
ActiveCell.Offset(1, 0).Select
CorpsDuMsg = CorpsDuMsg & Chr(13) + Chr(10) & "Le " & ActiveCell.Value & ", " & ActiveCell.Offset(0, 11) & " / Gravité potentielle : " & ActiveCell.Offset(0, 14).Value
CorpsDuMsg = CorpsDuMsg & Chr(13) + Chr(10) & "Client : " & ActiveCell.Offset(0, 8) & " - Nb actions prévues : " & ActiveCell.Offset(0, 37).Value
CorpsDuMsg = CorpsDuMsg & Chr(13) + Chr(10) & ActiveCell.Offset(0, 18).Value & Chr(13) + Chr(10)
Loop Until ActiveCell.Offset(1, 0).Value = ""
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")

iConf.Load -1 ' CDO Source Defaults
Set Flds = iConf.Fields
' Configuration des valeurs pour l'envoi du mail
With Flds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.free.fr"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Update
End With

With iMsg
Set .Configuration = iConf
.To = Destinataires
.CC = ""
.BCC = ""
.From = Emetteurs
.Subject = Sujet
.TextBody = CorpsDuMsg
' .AddAttachment Rep & "\" & nomfich
.Send
End With


Sheets("saisie AT-SD").Select
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub

j'ai essayé vbnewline , vbcrl, Chr(13) + Chr(10) mais rien n'y fait...

Qq'un aurait-il une solution ??

Par ailleurs, peut-on faire une mise en gras ou du souligné ??


Dans l'attente de vous lire,
Cordialement
 

jeff1494

XLDnaute Occasionnel
Re : Envoi de mail

Bonsoir Krystof_ii;
Perso voici les lignes de code que j'ai pour l'envoi de mon Email.

Code:
strbody = "Salut à tous ;" & vbNewLine & vbNewLine & _
              "Voici la dernière version du fichier des documentations présentes sur le serveur." & vbNewLine & _
              "Grâce à FilleZilla vous pouvez télécharger les documentations." & vbNewLine & _
              "Cela vous permet aussi d'en déposer. Si vous avez des soucis dites le moi, et on verra ensemble comment les résoudre." & vbNewLine & _
              "Sur ce bonne journée à tous, et A+." & vbNewLine & _
              "Jeff"

En fait c'est le "& vbNewLine qui fait les saut à la nouvelle ligne. Je pense que les majuscules et minuscules de l'instruction sont à respecter.

Concernant la mise en gras, et autre, je ne sais pas faire.
En espérant que cette solution te sera utile.
Bonne journée et A+.
 

Statistiques des forums

Discussions
312 249
Messages
2 086 599
Membres
103 256
dernier inscrit
Melomaniak