使用C#制作用已有邮箱发送电子邮件的一个发送器,
- 提问者网友:骑士
- 2021-07-28 06:31
- 五星知识达人网友:醉吻情书
- 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
{
发送失败
}