asp.net中C# 利用MailMessage发送邮件代码

MailMessage发送邮件的例子:C# 发送邮件的Helper类 主要就是用Web命名空间下的Mail.Mailmessage类用此类发送邮件主要就是对MailMessage类的实例设置一些属性,然后用SmtpMail指定smtp服务器发送。代码如下:

 代码如下 复制代码

<span id="more-1794"></span>

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Net.Mail;

using System.Net.Mime;

using System.IO;

using System.Timers;

using System.Xml;

using System.Net;

namespace TEST.SUBUNIT

{

public class EmailHelper

{

public MailMessage mailMessage(string fromAddress,string desemailuser, string toAddress, string emailSubject, string emailText) //邮件的发送收者,支持群发,多个地址之间用 半角逗号 分开

{

MailMessage mm = new MailMessage();

mm.To.Add("abc@qq.com");

//mm.To.Add(toAddress);//暂时屏蔽

////抄送

mm.CC.Add(new MailAddress("11@qq.com", "张三", Encoding.GetEncoding(936)));

mm.CC.Add(new MailAddress("22@qq.com", "李四", Encoding.GetEncoding(936)));

mm.CC.Add(new MailAddress("33@126.com", "王五", Encoding.GetEncoding(936)));

//mm.Bcc.Add("44@qq.com,44@qq.com");

 

mm.From = new MailAddress(fromAddress, desemailuser.Length&gt;0?desemailuser:fromAddress, Encoding.GetEncoding(936));

mm.SubjectEncoding = Encoding.GetEncoding(936);//这里非常重要,如果你的邮件标题包含中文,这里一定要指定,否则对方收到的极有可能是乱码。

mm.Subject = emailSubject; //邮件标题

mm.IsBodyHtml = true; //邮件正文是否是HTML格式

 

mm.BodyEncoding = Encoding.GetEncoding(936); //邮件正文的编码, 设置不正确, 接收者会收到乱码

//-------------------------------------------------------------------------

emailText += "这是要正确发送的邮箱:" + toAddress;

mm.Body = emailText;//邮件正文

mm.Priority = MailPriority.High; //邮件的优先级,分为 Low, Normal, High,通常用 Normal即可

//mm.Attachments.Add(new Attachment(@"d:a.doc",System.Net.Mime.MediaTypeNames.Application.Rtf));

////第二个参数,表示附件的文件类型,可以不用指定

return mm;

}

 

public bool sendEmail(string fromemailaddress, string toemailaddress,string emailtitle,string emailcontent,string host,string port,string fromemailuser,string desemailuser,string fromemailpass)

{

bool b=false;

 

string message=string.Empty;

 

MailMessage mailessage =this.mailMessage(fromemailaddress,desemailuser,toemailaddress,emailtitle,emailcontent);

SmtpClient smtp = new SmtpClient(); //实例化一个SmtpClient

smtp.DeliveryMethod = SmtpDeliveryMethod.Network; //将smtp的出站方式设为 Network

smtp.EnableSsl = false;//smtp服务器是否启用SSL加密

smtp.Host = host; //指定 smtp 服务器地址

smtp.Port = int.Parse(port); //指定 smtp 服务器的端口,默认是25

smtp.Credentials = new NetworkCredential(fromemailuser, fromemailpass);//认证

try

{

smtp.Send(mailessage);

b = True;

message= "发送成功!";

}

catch (System.Net.Mail.SmtpException ex)

{

b = False;

message= "发送失败!";

}

return b;

}

 

}

}

例2

 代码如下 复制代码
using Systme.Web.Mail;//引入命名空间
protected void Button1_Click(object sender, EventArgs e)
{
   MailMessage mmsg = new MailMessage();//实例一个mailmessage
   mmsg.Priority = MailPriority.Low;//设置优先级别
   mmsg.From = "weicfprince@163.com";//发件人
   mmsg.To = "weicfprince@hotmail.com";//收件人
   mmsg.BodyFormat = MailFormat.Text;//正文格式
   mmsg.Subject = "邮件发送测试";
   mmsg.Body = "我给我自己另一个邮箱发送了一个文本邮件";
   mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", 1);
   //发件人邮箱信息   
   mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "weicfprince");
   mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "******");//密码在此保密哈哈
   SmtpMail.SmtpServer = "smtp.163.com";//指定smtp服务器
        try
        {
            SmtpMail.Send(mmsg);//发送邮件
            Response.Write("1");
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
        }
    }

当然也还可以发送附件,用MailAttachments,它提供属性和方法来创建一个邮件附件对象.
MailAttachments ma= new MailAttachment( "d://test.txt" );//发送邮件的附件
mmsg.Attachments.Add( ma);//将附件附加到邮件消息对象中 

以上是完全可以实现发送邮件功能的,只是有些邮箱不可以发送,原因还是不太清楚。

时间: 2024-09-24 08:01:18

asp.net中C# 利用MailMessage发送邮件代码的相关文章

asp.net中禁止页面缓存程序代码

方法一:导航时用服务器端的Response.Redirect方法,或者用前端得window.location.replace方法. 方法二:禁用ASP.NET页面缓存. 在必要的时候我还是推荐方法二的.因为我们做开发的不能控制浏览器的设置.用户如果把IE设置为从不检查更新缓存的问题则不好避免,所以还是用方法二,让IE的临时文件夹不存在页面文件. 另外,是否禁用页面缓存要根据实际情况来说,起初我认为页面缓存只是缓存在服务器,后来看了一篇blog 发现缓存的意义还是很大的.在很多情况下可以大大减小服

ASP.Net中程序构架与程序代码的分离

asp.net|程序 一年前,当本人拿到一个名叫TWIG的PHP程序时,立即被作者OOP编程思想所折服,很难想像TWIG中所有的功能(行事历.邮件.个性化)均在一个PHP文件(index.php3)中执行完成,这就得益于作者采用了程序代码与页面构架分离的思想,但是我也看到尽管作者做了很大的努力,但由于PHP的局限性,程序并没有真正做到代码与构架的分离,index.php3这个主文件由于要执行的功能太多,所以其require的模块文件相当之多,至使整个文件依然显得十分零乱,本人愚昧,当时花了半个月

请高手指点asp.net中如何加入div+css代码,实现菜单效果

问题描述 问题如下:下面的DIV+CSS代码是一个菜单,想用在asp.net中.大类和小类分别从数据库中循环读取出来,显示在指定位置的aspx页面中,相当于动态添加.便于后期维护.有什么好的方法实现吗?<divclass="wrapper"><divclass="nav-bg"><divclass="nav-list"><ulid="nav"class="nav"&

ASP.net中网站访问量统计方法代码_实用技巧

一.建立一个数据表IPStat用于存放用户信息 我在IPStat表中存放的用户信息只包括登录用户的IP(IP_Address),IP来源(IP_Src)和登录时间(IP_DateTime),些表的信息本人只保存一天的信息,如果要统计每个月的信息则要保存一个月.因为我不太懂对数据日志的操作,所以创建此表,所以说我笨吧,哈哈. 二.在Global.asax中获取用户信息 在Global.asax的Session_Start即新会话启用时获取有关的信息,同时在这里实现在线人数.访问总人数的增量统计,代

ASP.NET中读写cookie数据示例代码

ASP.NET中的cookie:创建Cookie方法 (1) Response.Cookies["userName"].Value = "admin";  Response.Cookies["userName"].Expires = DateTime.Now.AddDays(1);  //如果不设置失效时间,Cookie信息不会写到用户硬盘,浏览器关闭将会丢弃.  ASP.NET中的cookie:创建Cookie方法 (2) HttpCookie

使用ASP.NET中的一点体会[关于代码分离]

asp.net|代码分离     最近在进行项目开发中,经常会遇到这种情况,就是当用户点击页面上的Button时,系统需要弹出一个窗口.这个窗口可能是标准对话框,也可能是一个新的页面.开始的时候我不知道如何实现这样的功能,按照我以前的编程习惯,我认为应该有一个类似于ShowMessage的方法,但是,可惜这种方法在WEB下是没有的.通过在网上查阅资料,发现一般的做法是在Button的OnClick事件中写下如下代码:   private void Button1_Click(object sen

ASP.NET中前台javascript与后台代码调用

1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问JavaScript的已有变量? 4.如何在C#中访问JavaScript函数? 问题1答案如下: javaScript函数中执行C#代码中的函数: 方法一:1.首先建立一个按钮,在后台将调用或处理的内容写入button_click中; 2.在前台写一个js函数,内容为document.getElementById("btn1").click(); 3.在前台或后台调用js函

asp.net中水印的具体实现代码_实用技巧

水印是为了防止别盗用我们的图片. 两种方式实现水印效果 1)可以在用户上传时添加水印. a)   好处:与2种方法相比,用户每次读取此图片时,服务器直接发送给客户就行了. b)   缺点:破坏了原始图片. 2)通过全局的一般处理程序,当用户请求这张图片时,加水印. a)   好处:原始图片没有被破坏 b)   缺点:用户每次请求时都需要对请求的图片进行加水印处理,浪费的服务器的资源. 代码实现第二种方式: 复制代码 代码如下: using System;   using System.Colle

asp.net中无损图片添加水印程序代码

水印是为了防止别盗用我们的图片. 两种方式实现水印效果 1)可以在用户上传时添加水印. a) 好处:与2种方法相比,用户每次读取此图片时,服务器直接发送给客户就行了. b) 缺点:破坏了原始图片. 2)通过全局的一般处理程序,当用户请求这张图片时,加水印. a) 好处:原始图片没有被破坏 b) 缺点:用户每次请求时都需要对请求的图片进行加水印处理,浪费的服务器的资源. 代码实现第二种方式: 代码如下:  代码如下 复制代码   using System; using System.Collect