Това не е точно нова тема, но когато трябваше да го направя, Открих много "Защо няма тази работа за мен" и не твърде много директни отговори. Надявам се някой намери тази полезна.
Следният код ще изпрати имейл, използвайки моя gmail акаунт да го направя, включително прикачените файлове:
използване на System.Net.Mail; използване на System.Net; NetworkCredential loginInfo = нов NetworkCredential("[Моя Gmail ID.]", "[Паролата си в Gmail]"); MailMessage MSG = нов MailMessage(); MSG. От = нов MailAddress("[М Gmail ИД]@gmail.com"); MSG. To.Add(нов MailAddress("paul.galvin@arcovis.com")); MSG. Обект = "Предмет тест infopath dev"; MSG. Тялото = "<HTML><тяло><силна>Силно послание.</силна></тяло></HTML>"; MSG. IsBodyHtml = вярно; foreach (низ aFile в NIPFD.GetAttachmentNamesAndLocations()) { MSG.Attachments.Add(нов Прикачен файл(aFile)); } // Добавяне на прикачени файлове. SmtpClient клиент = нов SmtpClient("smtp.gmail.com"); клиент.EnableSsl = вярно; клиент.UseDefaultCredentials = фалшиви; клиент.Идентификационни данни = loginInfo; клиент.Порт = 587; клиент.EnableSsl = вярно; клиент.Изпрати(MSG); |
Няколко основни бита, което ме забави и други наблюдения / бележки:
- Първият ред, който създава на loginInfo обект трябва да използват gmail, ИД лишен от "@gmail.com”. Така, Ако my gmail email обръщение е "sharepoint@gmail.com"и парола е"xyzzy"редът ще изглежда така:
NetworkCredential loginInfo = нов NetworkCredential("sharepoint", "xyzzy");
- My gmail сметка е настроена да използва SSL и че не е проблем.
- Има някои противоречива информация там за какво порт за използване. Аз използван порт 587 и то работник глоба за me.
- В моя случай, Също така е необходимо да изпращате прикачени файлове. Че NIPFD обект има метод, който знае къде са мой прикачени файлове. Това е връщане напълно път (e.g. "c:\tempattachment1.jpg". В моя тест, Имах две приложения и те работник глоба.
Аз използван visual studio 2008 да пишете този код.
</край>
Следвайте ме на Twitter в http://www.twitter.com/pagalvin
Чисто и просто…
Благодаря за споделяне.
PowerShell екип блог наскоро имаше подобен пост, че намерих безценен като сървър администратор. Visual Studio е страхотно, но много от колегите ми не са разработчиците и нямате лиценз, закупени. PowerShell чувства повече като командния ред и е по-достъпна за тях. Само едно предложение за всички администратори, там.
Най-добър,
Джеф (www.spjeff.com / @spjeff)
Изпращане на автоматичен имейли с изпращане-MailMessage
http://blogs.msdn.com/powershell/archive/2009/10/30/sending-automated-emails-with-send-mailmessage-convertto-html-and-the-powershellpack-s-taskscheduler-module.aspx