全部產品
Search
文件中心

Alibaba Mail:SMTP郵件投遞代碼之CSharp調用樣本

更新時間:Jul 09, 2025

本文介紹使用CSharp通過SMTP協議發信。

Alibaba Mail配置

SMTP伺服器位址:smtp.sg.aliyun.com

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.Sender = new MailAddress("顯示的發信地址");
                mailMsg.To.Add(new MailAddress("目標收信地址"));
                //mailMsg.CC.Add("抄送人地址");
                //mailMsg.Bcc.Add("密送人地址");
                //可選,設定回信地址 
                mailMsg.ReplyToList.Add("***");
                // 郵件主題
                mailMsg.Subject = "郵件主題C#測試";
                // 郵件內文內容
                string text = "歡迎使用Alibaba Mail";
                string html = @"歡迎使用<a href=""https://mail.sg.aliyun.com"">Alibaba Mail</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);
                //Alibaba Mail的SMT地址和連接埠
                SmtpClient smtpClient = new SmtpClient("smtp.sg.aliyun.com", 25);

                //C#官方文檔介紹說明不支援隱式TLS方式,即465連接埠,需要使用25連接埠(ECS預設不開通25連接埠),另外需增加一行 smtpClient.EnableSsl = true; 故使用SMTP加密方式需要修改如下:
                //SmtpClient smtpClient = new SmtpClient("smtp.qiye.aliyun.com", 25);
                //smtpClient.EnableSsl = true;

                // 使用SMTP使用者名稱和密碼進行驗證,如果開啟三方用戶端安全密碼請使用新產生的密碼
                System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("發信地址", "密碼");
                smtpClient.Credentials = credentials;
                smtpClient.Send(mailMsg);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
   }

}