SMTP-varmennuksen mahdollistaminen CDOSYS-järjestelmällä (System.Web.Mail) (Suomi (Finnish))

SMTP-varmennuksen mahdollistaminen CDOSYS-järjestelmällä (System.Web.Mail)

Friday, 20 February 2004

//

2 minute read

Yksi yleisimpiä ongelmia käytön CDOSYS (mikä on kohde-etuusluokka, jota Järjestelmä.Web.Mail) on se, että SMTP:n kautta lähetetyn postin aitous puuttuu, Darren Jefford lähetetty menetelmä Tätä varten olen toistanut sen alla, koska se on tällä hetkellä GotDotNwetissä ja voi kadota jossain vaiheessa:

Järjestelmä.Web.Mail ja Authentication

Äskettäin tuli esiin kysymys, miten lähettää sähköpostia .NET, System.Web.Mail tarjoaa mukavan MailMessage- ja SmtpMail-kurssin, joka tepsii.

Luokat ovat käärepaperia. CDOSYSToiminnallisuus, joka on ollut olemassa jo jonkin aikaa ja on paljon mukavampi kuin pikemminkin kömpelö CDOSYS-rajapinta :)

On todella suoraviivaista lähettää postia:

System.Web.Mail.MailMessage msg = new System.Web.Mail.MailMessage(); msg.Asia = "Testing", msg.Body = "Hello World", msg.From = "[email protected] ";msg.To =" [email protected] ";

System.Web.Mail.SmtpMail.SmtpServer = "YOUREXCHANGESERVER";System.Web.Mail.SmtpMail.Send( msg );

Mutta kun testasin sitä Exchange Serveriä vastaan, se kieltäytyi lähettämästä ja palautti tämän virheen:

Järjestelmä.Runtime.InteropServices.COMExclusion (0x8004020E): Palvelin hylkäsi lähettäjän osoitteen. Palvelimen vastaus oli: 454 5.7.3 Asiakkaalla ei ole lupaa lähettää sähköpostia tälle palvelimelle.

Oletusarvoisesti (ja viisaasti) Vaihto ei salli aitouttamattomien käyttäjien lähettää sähköpostia SMTP:n kautta roskapostittajia vastaan. SmtpMail-luokka ei käsittele tunnistusta Exchange-palvelimelle, mikä tarkoittaa, että luokkaa ei voi käyttää turvallisimmissa skenaarioissa.

Pitkän kaivamisen jälkeen löysin sen CDOSYSin. tekeeOta tunnistautumiskoodi, kuten odottaa voi, mutta MailMessage- tai SmtpMail-kurssi ei paljasta mitään tapaa käynnistää sitä. Vähän kaivamisen jälkeen huomasin, että Everett (.NET Framework 1.1) -tiimi tajusi tämän ja lisäsi uuden kiinteistön nimeltä Fields, joka voi olla mikä tahansa. katsopuuttuu joitakin asiakirjoja ;-)

Joten, joidenkin lisätutkimusten jälkeen olen havainnut, että voit todentaa palvelimen, jos sinulla on kehysversio 1.1, ja tämä on rivi, joka sinun täytyy lisätä yllä olevaan koodiin:

msg.Fields.Add('http://schemas.microsoft.com/cdo/configuration/smtpauthenticate',

Jos 2 kohdassa määritellään NTLM, 1 perusarvoksi, 0 nollaksi (oletusarvo)

Voit tietenkin myös määrittää MUKAANmuista kokoonpanovaihtoehdoista tämän Fields-kokoelman kautta

Minusta tuntuu, että MSDN Howton artikkeli on tulossa, ja ehkäpä poliittisesti pyydän, että joitakin MSDN-dokumentteja ladattaisiin! :-)

Finding related posts...
logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.