# SMTP-authenticatie mogelijk maken met CDOSYS (System.WebM SK2Mail )

<datetime class="hidden">2004-02-20T00:00</datetime>

<!-- category -- mostlylucidcouk, Imported, ASP.NET, C# -->
Een van de meest voorkomende problemen met het gebruik van [CDOSYS](http://msdn.microsoft.com/library/en-us/cdosys/html/_cdosys_about_cdo_for_windows_2000.asp) (die de onderliggende klas is. [Stelsel.WebM SK1Mail)](http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemwebmail.asp) is het gebrek aan authenticatie voor het verzenden van post via SMTP, [Darren Jefford](http://blogs.gotdotnet.com/darrenj/) [Hij heeft een methode gepost.](http://blogs.gotdotnet.com/darrenj/permalink.aspx/abb9e979-98dd-4172-b07c-2c4919ed94bf) Ik heb het hier beneden geproduceerd, want het is momenteel gehost op GotDOtNwet en kan op een bepaald moment verdwijnen.

### System.Web.Mail en Authenticatie

Een vraag kwam onlangs op hoe je e-mails kan sturen van .NET, Stelsel .WebM SK3Mail biedt een leuke MailMessage en SmtpMail klas die de truc doet.

De klassen zijn een omhulsel over de [CDOSYS](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/e2k3/e2k3/_techsel_tech_1.asp)functionaliteit die al een beetje bestaat en veel mooier is dan de nogal rommelige CDOSYS-interface.

Het is echt direct om een mail te sturen.

*Stelsel.WebM SK1Mail.MailMessage msg | = nieuw Stelsel~.Web+.Mail=.Mail-Messaging~(); msgMSC8Subject |= |"Testing~M SK11msg .Kleutel | = ♫"Hallo, de wereld!* *";msg.Na =  "* *iemand@domain.com* *";*

*Stelsel.WebM SK1Mail.SmtpMail .S mtpServer MSC4 "YOUREXCHANGESERVERMRK6 Stelsel~.Web+.Mail=.Sмtpmail=.Send+( msg );*

Maar toen ik het testte tegen een Exchange Server, weigerde het om te sturen, die deze fout terugvoert:

*Stelsel.RuntimeM SK1InteropServices.COMException (0xMST4EMst5 De server weigerde de stuurderadressen te versturen MST6 De antwoord van de server wasM ST7 M st8 | MST9 De kliënt heeft geen toestemming om e-mail naar deze server te sturen M ST10*

De standaardinstelling is: ( en wisely ) Exchange laat niet' on-authenticeerde gebruikers toe om mail via SMTP te sturen om tegen spammers te voorkomenM SK3 etcMSC4 Om een heel lange verhaalshot te snijden, behandelt de SmtpMail-klas de authenticatie niet naar de Exchange-server, wat betekent dat je het kan gebruiken.

Na veel graven vond ik dat CDOSYS [doet](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cdosys/html/_cdosys_schema_configuration_smtpauthenticate.asp)Maar de MailMessage of SmtpMail klas laat geen manier zien om het aan te zetten. [Kijk.](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebmailmailmessageclassfieldstopic.asp)Er ontbreekt een paar documentaties ;-)

Dus , na wat verder onderzoek heb ik ' ontdekt dat je tegen een server kunt authentiëren , als je Version 1.1 van het raamwerk hebt m, en dit is de lijn die je moet toevoegen aan de bovenste code M:

msg.Fields.AddMSC2httpM SK3schemasMST4microsoftMSV5comMSP6cdoMSS7configurationM SP8smtpauthenticateM SS9

Als de 2 NTLM specifiekt, dan is er geen NTLM voor.

Je kunt natuurlijk ook de [Ontelbaar](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cdosys/html/_cdosys_schema_configuration.asp)van andere opstellingsopties via deze velden-collectie.

Ik voel dat er een MSDN HOWTO-artikel op , komt en misschien beleefd vraagt om een paar MSDN-documentaties te uploaden.