Я бы хотел отправить автоматическое сообщение электронной почты, используя C# и Outlook. Я запутался, как отправить электронную почту, я думал, что метод .Send() выполнил бы это, но ничего не произойдет, когда я запустил это, и я не получаю ошибок компиляции.приложение C# для отправки электронной почты автоматически
Кто-нибудь знает, как активировать/выполнить этот код или узнать где-то, что я испортил. Спасибо.
using System;
using System.Management;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Collections;
using System.Net.Mail;
using System.Net.NetworkInformation;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.InteropServices;
using Microsoft.Office.Interop.Outlook;
using Outlook = Microsoft.Office.Interop.Outlook;
namespace email
{
class Program
{
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
SendEmailtoContacts();
}
private void SendEmailtoContacts()
{
string subjectEmail = "test results ";
string bodyEmail = "test results";
Microsoft.Office.Interop.Outlook.Application appp = new
Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook.MAPIFolder sentContacts =
appp.ActiveExplorer().Session.GetDefaultFolder(Microsoft.Office.Interop.Outlook.O lDefaultFolders.olFolderContacts);
foreach (Outlook.ContactItem contact in sentContacts.Items)
{
if (contact.Email1Address.Contains("gmail.com"))
{
this.CreateEmailItem(subjectEmail, contact.Email1Address, bodyEmail);
}
}
}
private void CreateEmailItem(string subjectEmail,string toEmail, string bodyEmail)
{
Microsoft.Office.Interop.Outlook.Application app = new
Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook.MailItem eMail =
app.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
eMail.Subject = subjectEmail;
eMail.To = toEmail;
eMail.Body = bodyEmail;
eMail.Importance = Outlook.OlImportance.olImportanceLow;
((Outlook._MailItem)eMail).Send();
}
static void Main(string[] args)
{
}
}
}
/////////////////////////////////////////// ////////////////
правильный код:.
using System;
using System.Management;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Collections;
using System.Net.Mail;
using System.Net.NetworkInformation;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.InteropServices;
using Microsoft.Office.Interop.Outlook;
using Outlook = Microsoft.Office.Interop.Outlook;
namespace email
{
class Program
{
static void Main(string[] args)
{
SendEmailtoContacts();
CreateEmailItem("yo", "[email protected]", "yoyoyoyoyo");
}
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
SendEmailtoContacts();
}
private static void SendEmailtoContacts()
{
string subjectEmail = "test results ";
string bodyEmail = "test results";
Microsoft.Office.Interop.Outlook.Application appp = new
Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook.MAPIFolder sentContacts =
appp.ActiveExplorer() Session.GetDefaultFolder (Microsoft.Office.Interop.Outlook.O lDefaultFolders.olFolderContacts);
foreach (Outlook.ContactItem contact in sentContacts.Items)
{
if (contact.Email1Address.Contains("gmail.com"))
{
CreateEmailItem(subjectEmail, contact.Email1Address,
bodyEmail);
}
}
}
private static void CreateEmailItem(string subjectEmail, string
toEmail, string bodyEmail)
{
Microsoft.Office.Interop.Outlook.Application app = new
Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook.MailItem eMail =
app.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
eMail.Subject = subjectEmail;
eMail.To = toEmail;
eMail.Body = bodyEmail;
eMail.Importance = Outlook.OlImportance.olImportanceLow;
((Outlook._MailItem)eMail).Send();
}
}
}
почему вы используете Interop вы можете сделать это гораздо проще, используя 'SMTP', если вы хотите рабочий метод, который я могу разместить один для вас с гораздо меньшим количеством кода, который работает, я также заметить, что у вас есть главная точка входа .. но вы не выполняете какой-либо код .. так как вы ожидаете фактически запустить любой код ..? – MethodMan
Нужна дополнительная информация. Можете ли вы отладить добавление?Является ли функция SendEmailtoContacts() когда-либо вызываемой на ThisAddIn_Startup? Если вы закомментируете строку .Send(), то окно Outlook должно фактически оставаться открытым на вашем рабочем столе, и вы должны увидеть электронную почту, ожидающую отправки. – nvuono