13590--北极燕鸥


   博采众长,信誉卓著
随笔 - 59, 文章 - 9, 评论 - 138, 阅读 - 17万

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

通过System.Web.Mail程序发邮件

Posted on   北极燕鸥  阅读(2725)  评论(17编辑  收藏  举报

  在.net 1.1里面,如何用程序控制来发送电子邮件。比如,网站用户注册成功后,给注册用户自动发一封邮件,提示用户的注册信息。再则,有时候需要每天定时的把一个报表发给固定的几个人。综合起来需要解决如下的几个问题:
  1、SMTP服务器身份认证。
  2、收件人为多人时,怎么发送。
  3、发送邮件附件。

实现程序如下:

  为了使用System.Web.Mail,在名字空间里引用:
  using System.Web.Mail;

  定义一个发送邮件的过程

        /// <summary>
        
/// 发送电子邮件邮件
        
/// </summary>
        
/// <param name="to">接收电子邮件地址</param>
        
/// <param name="subject">邮件主题</param>
        
/// <param name="body">邮件正文</param>
        
/// <param name="mailatta">附件</param>

        public void SendMail(string to,string subject,string body,MailAttachment mailatta)
        
{    

            MailMessage m_Mail 
= new MailMessage();
            
//定义SMTP服务器的名称 
            SmtpMail.SmtpServer = "mail.13590.com";

            
//定义SMTP邮件服务器需要身份认证
            m_Mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate""1");
            
//认证的用户名
            m_Mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername""username");
            
//认证密码
           m_Mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword","password");

            
//定义邮件的发送地址 
            m_Mail.From="\"秋雨\"<username@13590.com>";            

            
//定义邮件的接收地址 
            m_Mail.To = to.ToString();

            
//定义邮件的暗送地址 
             m_Mail.Bcc="bcc@13590.com";
            
//定义邮件的抄送地址 
             m_Mail.Cc = "cc@13590.com";
            
//定义邮件的主题
            m_Mail.Subject = subject;
            
//定义邮件的主体 
            m_Mail.Body = body;
            
//'邮件以 HTML的格式发送 
            m_Mail.BodyFormat = MailFormat.Text;
            
//定义邮件的有限级,在此设定为高
            m_Mail.Priority = MailPriority.High;
            
//  给发送的邮件附加上一个附件 
            if (mailatta!=null)
            
{
                m_Mail.Attachments.Add(mailatta);
            }

            
try 
            
{
                SmtpMail.Send(m_Mail);
            }

            
catch
            
{
                
//邮件发送有错
                Memo1.Text=Memo1.Text + subject;                    
            }
            
        }

注意邮件的地址 
    "\"秋雨\"<username@13590.com>";
    前面是显示的名称,后面是真实的Email地址 ,如果收件人地址为多人,以“;” 隔开,例如:
   "秋雨"<username@13590.com>;"管理员"<sys@13590.com>          注意使用转义字符。

我们使用程序来调用


        
private void button_Click(object sender, System.EventArgs e)
        
{
        
            
string MailAddr="\"秋雨\"<username@13590.com>;\"管理员\"<sys@13590.com> ";
            
string Subject="请查收统计报表";
            
string MailBody="Test";
            
string PathMailAtta=@"C:\统计报表.xls";

            MailAttachment mailatta;
            
try
            
{
                mailatta
= new MailAttachment(PathMailAtta);
    
            }

            
catch
            
{
                Memo1.Text
=Memo1.Text+PathMailAtta+"有异常,检查是否打开";
                
return;                    
            }

            SendMail(MailAddr,Subject,MailBody,mailatta);
        }

以上程序在VS.Net2003,Windows 2003(SP1)平台下测试通过。
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示