Back to "Вмикання автентифікації SMTP за допомогою CDOSYS (System. Web. Mail)"

This is a viewer only at the moment see the article on how this works.

To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk

This is a preview from the server running through my markdig pipeline

ASP.NET C# Imported mostlylucidcouk

Вмикання автентифікації SMTP за допомогою CDOSYS (System. Web. Mail)

Friday, 20 February 2004

Одна з найпоширеніших проблем з використанням CDOSYS (який є основним класом, що використовується System. Web. Mail) є відсутністю автентифікації для надсилання пошти за допомогою SMTP, Darren Jefford оприлюднити метод щоб зробити це, я відтворив його внизу з того часу як він зараз знаходиться на GotDotNwet і тому може зникнути в якийсь момент:

System. Web. Mail і розпізнавання

Нещодавно з'явилося питання щодо того, як надіслати електронну пошту з . NET, System. Web. Mail пропонує чудовий клас MailMessage і SmtpMail, який виконує цей трюк.

Класи - обгортка над CDOSYSФункціональні функції, які є досить довго, і набагато краще, ніж досить незграбний інтерфейс CDOSYS:)

Дуже просто надіслати листа:

System. Web. Mail. MailMessage msage = new System. Web. Mail.MailMessage}); msg. Subject = "Testing"; msg. Body = "Hello World"; msg. From = "ваше ім' я@ domain.com "; msg. To = " someone@ domain.com ";

System. Web. Mail.SmtpMail.SmtpServer = "YOUREXCANGESERVER";System. Web.Mail.SmtpMail.Send});

Тим не менш, коли я перевіряв дані на сервері обміну, програма відмовлялася від надсилання, повернувши цю помилку:

System. Runtime. InteropServices. COOExcoding (0x80020E): сервер відкинув адресу відправника. Відповідь сервера: 454 5. 7. 7. 3 Клієнт не має прав для надсилання пошти на цей сервер.

Типово (і розумно) Обмін не дозволяє користувачам без розпізнавання надсилати пошту через SMTP для запобігання спаму тощо. Щоб вирізати дуже довгу історію, клас SmtpMail не може працювати з розпізнаванням на сервері Exchange, це означає, що ви не можете використовувати клас у найбільш надійних сценаріях.

Після багатьох копань я знайшов CDOSYS doмає код розпізнавання, який ви й очікували, але клас MailMessage або SmtpMail ніяк не може його увімкнути. Після трохи більше копання я виявив, що команда Everyth (. NET Framework 1. 1) зрозуміла це і додала нову властивість, що називається полями, і як ви можете, див.не вистачає документації ; -)

Отже, після деяких подальших досліджень я виявив, що ви можете автентифікуватися на сервері, якщо у вас є 1,1 шаблона версії, і ось рядок, який ви маєте додати до цього коду:

msg. Fildds. add} http: // schemas. microsoft.com/cdo/ configuration/smpautentticate",2;

Де 2 вказує NTLM, 1 для базового, 0 для відсутності (типове)

Ви, звичайно, також можете налаштувати міріадиінших параметрів налаштування за допомогою цієї збірки полів

Я відчуваю, що стаття з настановами MSDN продовжується, і, можливо, смиренно просить вивантажити деякі документи MSDN!: -)

logo

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