永发信息网

使用C#制作用已有邮箱发送电子邮件的一个发送器,

答案:3  悬赏:20  手机版
解决时间 2021-07-29 01:38
要求先登录,登陆后可以发送邮件。好像C#里面有一个发送邮件的类。登录与发送邮件要分开。提供源代码给我,或写出重要步骤,解明注释。谢谢~~
最佳答案

这个其实比较简单,这个我用C#做过一个了,你看看,要是可以,源代码可以发给你。


http://www.skycn.com/soft/55634.html 你自己试试看。

全部回答

使用命名空间System.Web.Mail

二个对象:

1、MailMessage对象,是封装电子邮件的各个属性,即所谓的发信人,收信人,信件的主题,信件的内容和信件的附件等。

2、SmtpMail对象,是把已经定义好各个属性的MailMessage对象给发送出去,而完成此功能,就需要调用SmtpMail对象的Send ( )方法。

登录是登录你的应用,和发送邮件可以没有关系,也就是做个登录界面,登录后才显示填写要发送邮件的界面。

发送邮件的代码,你可以在vs里使用帮助,找到那两个对象的说明。

MailMessage aMessage = new MailMessage ( ) ;//新建一个MailMessage对象

aMessage.From = FromTextBox.Text ;//定义发信人地址,如果是多人,可以用","分开 aMessage.To = ToTextBox.Text ;//定义收信人地址,如果是多人,可以用","分开 aMessage.Cc = CCTextBox.Text ;//定义抄送人地址,如果是多人,可以用","分开 aMessage.Subject = SubjectTextBox.Text ;//定义邮件的主题 aMessage.Body = MessageTextBox.Text ;//定义邮件的内容 if ( AttachmentTextBox.Text.Length > 0 )//给邮件增加一个附件 aMessage.Attachments.Add ( new MailAttachment ( AttachmentTextBox.Text , MailEncoding.Base64 ) ) ;

然后使用SmtpMail.Send 方法这个方法有2个重载,一个不带参数,一个带4个参数(你如果使用指定的目标参数发送电子邮件)。

用默认是使用smtp服务器消息队列来发送邮件,你也可以在smtpMail类中指定它的一个smtpserver属性,来确定smtp服务器。

/// <summary> /// 发送邮件 /// </summary> /// <param name="MailServer">邮件服务器</param> /// <param name="MailServerPort">SMTP端口</param> /// <param name="MailZhuti">邮件主题</param> /// <param name="MailTo">收信人地址</param> /// <param name="MailTitle">信件标题</param> /// <param name="MailBody">信件主体,目前为一个html的模板文件</param> /// <param name="SessionId">sessionid,就是一个编号,代表这次请求</param> /// <param name="MailBodyFormat">编码格式0为Text,1为Html</param> /// <param name="MailPriority">优先级:0为低,1为中,2为高</param> /// <param name="Attachments">附件,为null则不发送</param> /// <returns></returns> public bool SendMail(string MailServer,int MailServerPort,string MailZhuti,string MailTo, string MailTitle, string MailBody,string SessionId, bool MailBodyFormat, System.Net.Mail.MailPriority MailPriority, string Attachments) { bool request=false; try { System.Net.Mail.SmtpClient EmailSend = new System.Net.Mail.SmtpClient(); EmailSend.Host = MailServer;//邮件服务器 EmailSend.Port = MailServerPort;//端口 EmailSend.UseDefaultCredentials = false; EmailSend.Credentials = new System.Net.NetworkCredential("xxxxxx@xxxx.com", "密码");//发信方邮箱验证 EmailSend.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;//发送方式 EmailSend.EnableSsl = true;

System.Net.Mail.MailAddress SendAddress = new System.Net.Mail.MailAddress("xxxxxx@xxxx.com", "发信人名称");//发送方的email地址和地址描述 System.Net.Mail.MailAddress SendTo = new System.Net.Mail.MailAddress(MailTo, MailTitle);//收信人的地址和地址描述

System.Net.Mail.MailMessage MailMessage = new System.Net.Mail.MailMessage(SendAddress, SendTo); string MailHtmlBody; System.IO.StreamReader sr = new System.IO.StreamReader(HttpContext.Current.Request.MapPath(MailBody)); MailHtmlBody = sr.ReadToEnd(); sr.Close(); sr.Dispose(); MailHtmlBody=MailHtmlBody.Replace("findid=", "findid=" + SessionId);//读取模板后替换一些东西 MailMessage.Subject = MailZhuti;//信件主题 MailMessage.SubjectEncoding = System.Text.Encoding.UTF8; MailMessage.Sender = new System.Net.Mail.MailAddress("xxxxxx@xxxx.com");//发件人地址 MailMessage.Body = MailHtmlBody;//信件主体 MailMessage.BodyEncoding = System.Text.Encoding.UTF8;//编码格式 MailMessage.IsBodyHtml = MailBodyFormat;//主体类型 MailMessage.Priority = MailPriority;//优先级 EmailSend.Send(MailMessage); request = true; } catch { request = false; } return request; }

调用的时候

if (SendMail("smtp.gmail.com", 587, "邮件标题", txt_email.Text.Trim(), "标题", "../Functions/modal.htm", sessionid, true, System.Net.Mail.MailPriority.Normal, null) == true)

{

发送成功

}

else

{

发送失败

}

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
六年级分数除法应用题
悲剧了,我以前玩过FZL现在觉得以前很恶心,
为什么我宠物结婚了2个星期还没有宝宝的??
求CS1.6生化模式下载地址
东宝区荆门盼盼服饰地址有谁知道?有点事想过
be the first ( )to do sth
5800i行货怎么没有手机架?另外配饰也不是蓝
该忘了还是该记住?
负载电荷是什么意思?是本身就有的?有电压就
怎样点亮QQ三国的图标啊
关于气功师加点的几个问题
现在小可音乐网主页的背景音乐叫什么。?
新邵县邵阳雀晨全自动麻将机新邵专卖店地址有
怎么区分家鸽和信鸽?看到有些鸽子鼻子很大,有
清朝时的‘宫门抄’是什么意思?
推荐资讯
w-inds.成员间有什么可爱的事迹?
我想买房,德州市都有哪些不错的楼盘?
怎么在北京中日友好医院预约挂号?
六级该怎么办啊?周六要考试了!
跑完100跑1500,有15分钟休息,该怎样恢复
诺基亚5220能看电子书么?
•怎样挑选合适的牛仔裤
自由幻想我下载的2.31版本更新不了
QQ飞车道具赛怎么样才不被套住(不用盾牌)
学校班级励志口号,班级目标口号
江夏区武汉湖北经济学院图书馆在什么地方啊,
请问浙江桐乡市濮院镇的经度 伟度各是多少?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?