I have a list of documents and email addresses.
I am trying to create a method I can use to iterate throw the list of emailAddresses and for each creates a new email I Outlook and attaches the corresponding document.
The Creating the MailItem is was I get stuck. Found a sample on MSDN that should work from Office 2013 and forward.
This is what I have so far:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Office.Interop.Outlook;
namespace Test_Invoice
{
class SendviaMail
{
string demofile = @"C:\Desktop\test-inv\1_Test Testesen_1_010.pdf";
public void Send()
{
MailItem eMail = new MailItem();
eMail.Subject = "Here is Your Invoice";
eMail.To = "[email protected]";
eMail.Body = "Dette er en test mail for TestMailApp";
}
public void Send(string email, string filename)
{
}
}
}
I've been trying to understand the documentation on MSDN and read thru a few posts on here.
As far as I can figure out, the next step is to add the attachment (the demo file) If I understand it right I need something like
eMail.AttachmentAdd = demofile;
But that does not work.
It might be me that does not understand the library correctly. Looking at this sample from MSDN https://msdn.microsoft.com/en-us/library/bb644320.aspx
Results in this code:
using Microsoft.Office.Interop.Outlook;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Outlook = Microsoft.Office.Interop.Outlook;
namespace Test_Invoice
{
class SendviaMail
{
string demofile = @"C:\Desktop\test-inv\1_Test Testesen_1_010.pdf";
public void Send()
{
Outlook.MailItem mail = Application.CreateItem(Outlook.OlItemType.olMailItem) as Outlook.MailItem;
mail.Subject = "Quarterly Sales Report FY06 Q4";
//MailItem eMail = new MailItem();
//eMail.Subject = "tilmelding og faktura";
//eMail.To = "[email protected]";
//eMail.Body = "Dette er en test mail for TestMailApp";
//eMail.AttachmentAdd
}
public void Send(string email, string filename)
{
}
}
}
The fixed sample code should look like this:
var ol = new Outlook.Application();
Outlook.MailItem mail = ol.CreateItem(Outlook.OlItemType.olMailItem) as Outlook.MailItem;
note that you need to declare the Outlook
alias with your using
statement:
using Outlook = Microsoft.Office.Interop.Outlook;
(as you already did) ... but must also remove
using Microsoft.Office.Interop.Outlook;
to avoid Visual Studio confusing your references.
The rest of the MSDN example should work as expected I don't have any other samples I can point you to, so your best bet is searching for Microsoft.Office.Interop.Outlook
or explore linked questions here.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With