永发信息网

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

答案:3  悬赏:20  手机版
解决时间 2021-07-29 01:38
  • 提问者网友:骑士
  • 2021-07-28 06:31
要求先登录,登陆后可以发送邮件。好像C#里面有一个发送邮件的类。登录与发送邮件要分开。提供源代码给我,或写出重要步骤,解明注释。谢谢~~
最佳答案
  • 五星知识达人网友:醉吻情书
  • 2021-07-28 07:43

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


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

全部回答
  • 1楼网友:何以畏孤独
  • 2021-07-28 09:38

使用命名空间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服务器。

  • 2楼网友:野味小生
  • 2021-07-28 08:41

/// <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

{

发送失败

}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯