2009-10-12 8 views
0

Je veux créer un programme qui vous indique si vous pouvez vous connecter à un compte e-mail ou non en entrant leur nom d'utilisateur et mot de passe dans Windows Live.L'utilisation de VB.NET pour se connecter à Windows Live Mail?

Il se connecterait au serveur Hotmail et verrait si la combinaison utilisateur/passe est correcte. S'il peut se connecter, il affichera une étiquette indiquant que le compte est valide, sinon il dirait que le compte n'est pas valide.

Comment ferais-je cela? .

Ok, voici le code totalement faux pour la connexion de type I emprunté à l'envoi d'un e-mail:

Dim MyMailMessage As New MailMessage 
MyMailMessage.From = New MailAddress(TextBox1.Text) 
MyMailMessage.To.Add(TextBox1.Text) 

Dim SMTP As New SmtpClient("smtp.live.com") 
SMTP.Port = 25 
SMTP.EnableSsl = True 
SMTP.Credentials = New System.Net.NetworkCredential("textbox1.text", "textbox2.text") 
SMTP.Send(MyMailMessage) // I have no idea how to get a response here... from the live server if it gives me a correct or incorrect response... 

Quelqu'un peut-il afficher un exemple de code si elles ont une solution à cela? Parce que je n'ai aucune idée de comment faire ce single de manière agile.

+2

Qu'avez-vous essayé? On dirait que vous voulez que Stack Overflow fasse cela pour vous. –

+1

Vous devez absolument ajouter plus de détails pour rendre votre question plus spécifique. Montrez-nous ce que vous avez jusqu'ici, et où exactement vous rencontrez des problèmes. –

+0

Eh bien, j'ai essayé de me connecter avec System.net.mail. mais cela ne s'est pas avéré être un succès, puisque system.net.mail je l'utilise habituellement pour envoyer des emails. – lab12

Répondre

0

Une option pourrait être d'utiliser le contrôle WebBrowser qui vous permettrait d'accéder aux champs de saisie du nom d'utilisateur et du mot de passe, et vous permettrait de cliquer sur le bouton de connexion. Vous pouvez alors voir à quelle page l'utilisateur est redirigé et qui vous dirait dans le combo nom d'utilisateur/mot de passe est correct ou non.

+0

Ok, cela semble être une bonne idée. Mais, ok, si j'avais textbox1 qui était le (boîte de nom d'utilisateur) et textbox2 qui est la (boîte de mot de passe). Lorsque la presse se connecte, comment les valeurs de texte dans ces boîtes vont-elles aux endroits corrects sur le webbrowser? – lab12

+0

vous feriez quelque chose comme ceci: browser.Document.GetElementById ("username"). SetAttribute ("value", Info.Username); où browser est votre contrôle WebBrowser et "nom d'utilisateur" est l'ID de l'élément d'entrée sur la page. Et vous feriez la même chose pour la boîte de mot de passe. Et puis pour cliquer sur le bouton de connexion, quelque chose comme ça fonctionnerait: browser.Document.GetElementsById ("login"). InvokeMember ("click"); Il sera un peu plus compliqué si le bouton de connexion n'a pas d'ID, mais il est toujours possible de trouver comment le trouver en utilisant les autres méthodes de l'objet Document. –

+0

pour votre exemple, vous remplacerait Info.Username avec textbox1.Text –

0

Utilisez Fiddler ou HTTP Analyzer pour voir ce qui se passe lorsque vous vous connectez avec un navigateur. (Je peux vous donner un coup de main: Une demande de poste http est envoyée à https://login.live.com....)

Tout ce que vous avez à faire est d'imiter cette requête avec la classe HttpWebRequest dans .NET. Il est important que votre requête soit la plus similaire possible à celle du navigateur.

1
dim smtp as new smtpclient("smtp.live.com",25) 
dim m as new mailmessage()'message must contains from, to, etc 

with smtp 

.usedefaultcredentials = false 'by default this is true 
.credentials = new networkcredential("usuername","password") 
.enablessl = true 
.ishtmlbody = true 
.send(m) 
'or async 
'.send(m,addresof enviado)' i'm not remember well if addressof is required here 
end with 


public sub Enviado 
msgbox("mail message sended async") 
end sub 
Questions connexes