Piszę program który ma wysyłać maile za pomocą aplikacji outlook (desktopowej). Odkryłem 2 przestrzenie nazw do tego:
Microsoft.Office.Interop.Outlook;
oraz
System.Net.Mail;
Microsoft.Office.Interop.Outlook wydaje mi się bardziej przyjazne tym bardziej że nie muszę w kodzie podawać loginu oraz hasła ani maila, wszystko bierze z aplikacji lecz niestety nie umiem tutaj zrobić 2 widoków html i tekstowego ( tekstowy po to, że jeżeli skrzynka odbiorcy nie obsługuje html to pojawia mu sie teskt informujący go o tym fakcie)
public void sendEMail(string recipient, string title, string body, bool priority)
{
Outlook.Application app = new Outlook.Application();
Outlook.MailItem mail = app.CreateItem(Outlook.OlItemType.olMailItem);
mail.BodyFormat = Outlook.OlBodyFormat.olFormatHTML;
mail.HTMLBody = body;
mail.Subject = title;
mail.To = recipient;
if (priority)
{
mail.Importance = Outlook.OlImportance.olImportanceHigh;
}
mail.Send();
}
System.Net.Mail tutaj bez problemu 2 takie widoki umiem zrobić ale, nie podoba mi się tutaj to, że muszę podawać maila z której skrzynki pocztowej będzie to wysyłane ,login oraz hasło.
using (MailMessage message = new MailMessage())
{
message.From = new MailAddress("mailfrom");
message.To.Add(new MailAddress("mailto"));
message.Subject = "Test programu";
AlternateView plainText = AlternateView.CreateAlternateViewFromString("Zawartość nie może zostać wyświetlona.", new ContentType("text/plain; charset=UTF-8"));
AlternateView htmlText = AlternateView.CreateAlternateViewFromString("kodhtml", new ContentType("text/html"));
message.AlternateViews.Add(htmlText);
message.AlternateViews.Add(plainText);
using (SmtpClient MailClient = new SmtpClient("smtp-mail.outlook.com", 587))
{
MailClient.EnableSsl = true;
MailClient.UseDefaultCredentials = true;
MailClient.Credentials = new NetworkCredential("login", "hasło");
MailClient.Send(message);
}
}
I tu pojawia się pytanie czy jest jakiś sposób aby w 1 kodzie dodać tekst alternatywny bądź w 2 przykładzie wyrzucić z kodu logowanie i skorzystać z danych użytkownika który jest zalogowany na desktopowej aplikacji outlook? Za wszelką pomoc będę wdzięczny :)