Ouvrir le client mail pour pré remplir celui-ci [Résolu]

Tweet75 87 Messages postés jeudi 5 novembre 2009Date d'inscription 3 janvier 2012 Dernière intervention - 21 nov. 2010 à 22:05 - Dernière réponse : paramecie 15 Messages postés samedi 23 octobre 2010Date d'inscription 29 novembre 2010 Dernière intervention
- 26 nov. 2010 à 00:33
Bonjour a tous,

Je travaille actuellement sur un projet sur VB.net et j'aimerai faire à l'aide d'une fonction, une ouverture automatique du client mail (outlook, windows live messenger, etc...) pour le pré remplir avec mes infos. J'ai beau chercher, je n'ai pas trouver de solutions à mon problème...

Je ne veux pas que le mail s'envoie de lui même...

Quelqu'un aurait il une solution ?

Merci par avance
Afficher la suite 

Votre réponse

17 réponses

Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 23 nov. 2010 à 21:37
+3
Utile
Re,

Pourquoi tu ne peux pas tester ?

Ton code à l'air bon, sauf qu'un simple process.start aurait suffit:

    Function Envoi_Mail(ByVal Expediteur As String, ByVal Destinataire As String, ByVal Sujet As String, ByVal Message As String)
        Try
            Cursor = Cursors.WaitCursor
            Process.Start("mailto:" & Destinataire & "?subject=" & Sujet & "&body=" & Message)
            Return True
        Catch ex As Exception
            Return False
        Finally
            Cursor = Cursors.Default
        End Try
    End Function

    Private Sub btn_SendMail_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_SendMail.Click
        If Envoi_Mail("expediteur@domaine.ext", "destinataire@domaine.ext", "sujet", "corp du message") Then
            MessageBox.Show("Message envoyé")
        Else
            MessageBox.Show("Echec de l'envoi du message")
        End If
    End Sub


Voila, @+

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Mayzz
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 22 nov. 2010 à 12:19
0
Utile
Salut,

Fais une recherche avec le mot clé "mailto"

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
Tweet75 87 Messages postés jeudi 5 novembre 2009Date d'inscription 3 janvier 2012 Dernière intervention - 23 nov. 2010 à 20:56
0
Utile
Bonjour Mayzz,

Peux tu me dire si le code suivant est bon stp ?

Function Envoi_Mail(ByVal Expediteur As String, ByVal Destinataire As String, ByVal Sujet As String, ByVal Message As String)

Dim Mail As New Process

Cursor = Cursors.WaitCursor

Me.PB_Statut.Image = Projet.My.Resources.Mail
Me.Timer_Statut.Start()


Try

Mail.StartInfo.FileName = "mailto:" & Destinataire & "?subject=" & Sujet & "&body=" & Message

Mail.StartInfo.Verb = "open"
Mail.StartInfo.CreateNoWindow = True
Mail.Start()

Catch ex As Exception
MsgBox(ex, MsgBoxStyle.Exclamation, "Problème réseau (FR304)")
Cursor = Cursors.Default
Exit Function
End Try

Cursor = Cursors.Default


End Function
Commenter la réponse de Tweet75
Tweet75 87 Messages postés jeudi 5 novembre 2009Date d'inscription 3 janvier 2012 Dernière intervention - 23 nov. 2010 à 22:53
0
Utile
Si j'ai testé mais comme tu l'as bien dit j'avais peur d'en avoir trop mis. Une dernière petite question : Comment fais t'on pour aller à la ligne dans le corps du message ??

Merci !
Commenter la réponse de Tweet75
NSUADI 540 Messages postés mardi 4 août 2009Date d'inscription 1 février 2013 Dernière intervention - 24 nov. 2010 à 01:08
0
Utile
eh ben:
"papa et" & Environment.NewLine & "maman"


Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...

Visual Basic .Net is the best
and vb6.0
Commenter la réponse de NSUADI
paramecie 15 Messages postés samedi 23 octobre 2010Date d'inscription 29 novembre 2010 Dernière intervention - 24 nov. 2010 à 02:21
0
Utile
Salut -

Puisqu'on en parle...

J'utilise ici (VB6SP5, XPSP3 ou W7x64) le vieil appel à ShellExecute pour faire un "mailto:"
Limité en nombre de caractères (1500 env.), mais bon, ça allait.

Sauf qu'avec Thunderbird ça marchait très bien jusqu'à la version 3.1, et que depuis le dernier paragraphe a TOUJOURS des retours chariots (%OD) qui manquent, et donc ce paragraphe est illisible / peu lisible. Suis pas allé très loin dans l'analyse du problème, mais c'est systématique, et uniquement depuis TB 3.1

Quelqu'un a-t-il eu ça aussi?

Quelqu'un a une autre solution pour 'parler à Thunderbird' (y créer un message a expédier)?

Sinon je vais réécrire ça pour directement modifier le fichier de Thuderbird 'courriers en attente' - comme ça je pourrai aussi faire partir les e-mails par lots. Et si vous vous demandez, oui je peux directement les envoyer par SMTP ou autre, mais il m'en faut une copie dans les e-mails... Pas de souci technique, ce n'est pas compliqué, mais à faire
Commenter la réponse de paramecie
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 24 nov. 2010 à 13:15
0
Utile
%0A sert pour le retour chariot

Envoi_Mail("expediteur@domaine.ext", "destinataire@domaine.ext", "sujet", "corp du message%0ANouvelle ligne")


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
paramecie 15 Messages postés samedi 23 octobre 2010Date d'inscription 29 novembre 2010 Dernière intervention - 24 nov. 2010 à 17:36
0
Utile
Effectivement, c'est %0A et non %0D...
Le plus étonnant c'est que Thunderbird interprétait bien le %0D jusqu'à quelques mois...
Merci Mayzz

Bon, en tous cas notre fournisseurs e-mails râle (trop de connexions), il va donc bien falloir que je regroupe les envois d'e-mails...

Et à nouveau, si quelqu'un connaît une solution même payante pour accéder à TB et pouvoir lui passer des emails de plus de 2Ko, je veux bien
Commenter la réponse de paramecie
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 24 nov. 2010 à 17:58
0
Utile
Pourquoi passer par thunderbird ?

En vb6 tu peux simplement utiliser ce bon vieux winsock, il me semble que le protocole SMTP est relativement simple (sauf dans le cas d'une connexion sécurisé). Je n'ai pas d'exemple sous la main et mon VB6 est loin mais tu peux déjà regarder la RFC 2821 pour avoir plus d'infos et aussi chercher "client SMTP" dans les sources vb6 ici.

En .Net, la classe SMTPClient (System.Net.Mail), permet l'envoi d'email via la classe MailMessage, je ne peux te dire comment c'est fait en interne (bien que cela soit simple à vérifier via reflector), mais il me semble que le client SMTP ne se déconnecte pas de suite, permettant l'envoi de multiples messages à condition que les classes soient instanciées dans le même thread (mais cela reste à vérifier). Pour la sytaxe elle est très simple, en 30 seconde ton client est pondu sous VB Express 2008/2010.

++

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
paramecie 15 Messages postés samedi 23 octobre 2010Date d'inscription 29 novembre 2010 Dernière intervention - 24 nov. 2010 à 20:04
0
Utile
Merci Mayzz pour les infos. Mais j'ai besoin d'une trace (pratique et même légale) dans nos e-mails, donc pas d'envoi par SMTP - sauf à refaire toute la messagerie...
Commenter la réponse de paramecie
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 24 nov. 2010 à 20:16
0
Utile
Mais j'ai besoin d'une trace (pratique et même légale) dans nos e-mails, donc pas d'envoi par SMTP - sauf à refaire toute la messagerie...


Je ne comprend pas, via quel méthode TB envoi les emails chez toi ?

Pour la trace légale, si ton soft enregistre les emails envoyés c'est une trace légale...



Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
paramecie 15 Messages postés samedi 23 octobre 2010Date d'inscription 29 novembre 2010 Dernière intervention - 24 nov. 2010 à 21:44
0
Utile
>Je ne comprend pas, via quel méthode TB envoi les emails chez toi ?

Pour l'instant par "mailto:"
Je vais désormais directement modifier le fichier "messages en attente" (j'ai vérifier faisabilité, pas de problème) - juste à faire...

>Pour la trace légale, si ton soft enregistre les emails envoyés c'est une trace légale...
Moins - et de toute façon j'ai besoin de suivre la conversation, de répondre ou de transférer, de me référer à... Pas possible de commencer sur un support et de continuer sur l'autre. Donc tout sous TB, ou tout ailleurs, mais pas les deux.
Commenter la réponse de paramecie
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 24 nov. 2010 à 22:32
0
Utile
Pour l'instant par "mailto:"


Oui mais TB utilise bien le protocole SMTP ?

Fin bon, si tu dois suivre les conversation, rien empeche la réception sur un client mail classique, les gens von te répondre à l'adresse du mail, donc que t'envoi de TB ou d'ailleur ne change rien au problème, ton souci premier est d'automatiser l'envoi du 1er email.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz
paramecie 15 Messages postés samedi 23 octobre 2010Date d'inscription 29 novembre 2010 Dernière intervention - 25 nov. 2010 à 00:50
0
Utile
Oui TB utilise SMTP (entre autres).
En fait j'ai besoin de mes envois (tous) ou réponses dans TB (voire Google Desktop Search, qui ne marche plus avec TB 3.1, un autre problème...)
En gros, si je tape "123456" (numéro de commande), je dois trouver *tout* se rapportant à cela dans un seul endroit. Enfin, idéalement. Donc l'e-mail de départ (les différents e-mails expédiés, pas qu'un seul), je dois les avoir sous Thunderbird.

Bon, te biles pas, encore merci pour le %0A, c'était ça, et une erreur idiote - et pourtant ça a marché pendant 2 ans comme ça...
Je vais aller directement écrire dans le fichier de Thunderbird, pas de souci, juste je demandais s'il y avait une (nouvelle) solution "toute cousue"
Commenter la réponse de paramecie
Tweet75 87 Messages postés jeudi 5 novembre 2009Date d'inscription 3 janvier 2012 Dernière intervention - 25 nov. 2010 à 10:01
0
Utile
Bonjour a tous,

Tout d'abord, merci pour vos réponses. J'ai une toute dernière question :
tout marche parfaitement seulement je voudrai savoir s'il y a possibilité de mettre le curseur clignotant à la fin de la ligne pré écrite afin d'éviter de cliquer pour pouvoir écrire.

Merci
Commenter la réponse de Tweet75
paramecie 15 Messages postés samedi 23 octobre 2010Date d'inscription 29 novembre 2010 Dernière intervention - 25 nov. 2010 à 15:14
0
Utile
Je ne crois pas. Il ne resterait que SendKeys, ou ce type d'envoi de touches:
http://www.mvps.org/access/api/api0046.htm

Bien lire le deuxième paragraphe sur le danger d'utiliser l'envoi de touches - on peut par exemple s'assurer que la fenêtre sur laquelle on envoit la touche est bien celle de sa messagerie...
Commenter la réponse de paramecie
paramecie 15 Messages postés samedi 23 octobre 2010Date d'inscription 29 novembre 2010 Dernière intervention - 26 nov. 2010 à 00:33
0
Utile
Excuses-moi, j'ai mal lu ta question.
Je pensais que tu souhaitais expédier sans avoir besoin de faire CTRL+Entrée ou d'appuyer sur le bouton correspondant (auquel cas il faudrait que tu utilises SendKeys voire que tu expédies en SMTP).
Pour changer de champ, à supposer que le curseur soit quelque part quand tu crées le message, tu peux aussi utiliser SendKeys pour envoyer des tabs ou des 'flèches'. Et/ou repérer le nom de la fenêtre (Window) idoine, et lui passer le focus, certainement pas mal d'APIs à gérer. J'ai pas mieux à te dire, sous la main et dans le temps que j'ai.
Commenter la réponse de paramecie

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.