ASP.NET C#でOutlookにメールを送信する方法
ASP.NET C# で Outlook にメールを送信するには、下記コード スニペットを使用できます。
using Microsoft.Office.Interop.Outlook;
// 创建Outlook应用程序对象
Application outlookApp = new Application();
// 创建邮件项
MailItem mailItem = (MailItem)outlookApp.CreateItem(OlItemType.olMailItem);
// 设置邮件项的属性
mailItem.Subject = "测试邮件";
mailItem.Body = "这是一封测试邮件";
// 添加收件人
Recipient recipient = mailItem.Recipients.Add("recipient@example.com");
recipient.Type = (int)OlMailRecipientType.olTo;
// 添加附件
string attachmentPath = @"C:\path\to\attachment.txt";
mailItem.Attachments.Add(attachmentPath, Type.Missing, Type.Missing, Type.Missing);
// 发送邮件
mailItem.Send();
// 释放资源
System.Runtime.InteropServices.Marshal.ReleaseComObject(mailItem);
System.Runtime.InteropServices.Marshal.ReleaseComObject(outlookApp);
mailItem = null;
outlookApp = null;
ただし、この方法は Microsoft Outlook がインストールされたマシンに依存し、Outlook アプリケーションオブジェクトがコード内に新しい Outlook インスタンスを作成することに注意してください。そのため、この方法はコードを実行するコンピュータに Outlook が既にインストールされている場合にのみ有効です。
また、Microsoft.Office.Interop.Outlook アセンブリをプロジェクトで参照する必要があります。これは、Visual Studio の NuGet パッケージ マネージャーからインストールできます。
Outlook アプリケーションに依存せずにメールを送信する場合、SMTP サーバーを使用してメールを送信することができます。 SMTP でメールを送信するためのサンプルコードは次のとおりです。
using System.Net;
using System.Net.Mail;
// 创建SMTP客户端
SmtpClient smtpClient = new SmtpClient("smtp.example.com", 587);
smtpClient.EnableSsl = true;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new NetworkCredential("username", "password");
// 创建邮件对象
MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress("sender@example.com");
mailMessage.To.Add("recipient@example.com");
mailMessage.Subject = "测试邮件";
mailMessage.Body = "这是一封测试邮件";
// 添加附件
string attachmentPath = @"C:\path\to\attachment.txt";
mailMessage.Attachments.Add(new Attachment(attachmentPath));
// 发送邮件
smtpClient.Send(mailMessage);
このような場合、メール送信には Gmail や Outlook.com などの SMTP クライアントのサーバーと認証情報を利用します。この方式は Outlook がインストールされたコンピューターに依存せず、本場 Outlook アプリケーションにアクセスできない Web アプリケーションなどに適しています。