すべてのプロダクト
Search
ドキュメントセンター

Direct Mail:SMTP - C#

最終更新日:Jan 19, 2025

次の例は、C# を使用して SMTP 経由でメールを送信する方法を示しています。

using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Mail;
using System.Net.Mime;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                MailMessage mailMsg = new MailMessage();
                mailMsg.From = new MailAddress("コンソールで作成した送信元アドレス", "ニックネーム");
                mailMsg.To.Add(new MailAddress("宛先アドレス"));
                //mailMsg.CC.Add("CCアドレス");
                //mailMsg.Bcc.Add("BCCアドレス");
                //オプション、ReplyTo
                mailMsg.ReplyToList.Add("***");
                // 件名
                mailMsg.Subject = "件名C#テスト";
                // 本文
                string text = "Alibaba Cloud DirectMail へようこそ";
                string html = @"<a href=""https://dm.console.alibabacloud.com"">DirectMail</a> へようこそ";
                mailMsg.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(text, null, MediaTypeNames.Text.Plain));
                mailMsg.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(html, null, MediaTypeNames.Text.Html));

                // 添付ファイルを追加する
                string file = "D:\\1.txt";
                Attachment data = new Attachment(file, MediaTypeNames.Application.Octet);
                mailMsg.Attachments.Add(data);
                //DirectMail SMTPアドレスとポート
                SmtpClient smtpClient = new SmtpClient("smtpdm.aliyun.com", 25);
                //C# の公式ドキュメントでは暗黙の TLS はサポートされていないと説明されているため、ポート 465 は使用できませんが、ポート 25 またはポート 80 は使用できます(ECS はポート 25 をサポートしていません)。さらに、smtpClient.EnableSsl = true というコード行を追加する必要があります。したがって、SMTP 暗号化方式は次のように変更する必要があります。
                //SmtpClient smtpClient = new SmtpClient("smtpdm.aliyun.com", 80);
                //smtpClient.EnableSsl = true;
                // SMTP ユーザー名とパスワードを確認する
                System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("コンソールで作成した送信元アドレス", "コンソールで設定した SMTP パスワード");
                smtpClient.Credentials = credentials;
                smtpClient.Send(mailMsg);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
   }

}