最近又把某个账号密码忘记了,在多方设法下,终于通过邮箱的方式非常方便地就找回了,但我随后就想他是怎么实现给你发邮件的呢?这公司肯定不可能安排某些人来专门给忘记密码,注册验证等来发送邮件,一定有某种方法可以自动改善邮件,说不定以后哪天我有个项目也要用到自动发送邮件,我也能用上,所以我就饶有兴趣google后做出一个简单的邮件发送器,如图:
一.首先要说说关于电子邮件发送和接收的3个协议(SMTP,POP3,IMAP)
1.SMTP(Simple Mail Transfer Protocal)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。
2.POP(Post Office Protocol ,即邮局协议),用于电子邮件的接收,现在常用的是第3版,所以为 POP3。POP3采用Client/Server工作模式。当客户机需要服务时,客户端的软件(Outlook Express或FoxMail)将与POP3服务器建立TCP连接,此后要经过POP3协议的三种工作状态,首先是认证过程,确认客户机提供的用户名和密码,在认证通过后便转入处理状态,在此状态下用户可收取自己的邮件或做邮件的删除,在完成响应的操作后客户机便发出quit命令,此后便进入更新状态,将做删除标记的邮件从服务器端删除掉。
3.IMAP(Internet Message Access Protocol的缩写),顾名思义,主要提供的是通过Internet获取信息的一种协议。IMAP像POP那样提供了方便的邮件下载服务,让用户能进行离线阅读,但IMAP还能提供的摘要浏览,如阅读所有的邮件主题、发件人等信息。
代码:
1 View Code 2 1 // 实例化一个smtp端 3 2 SmtpClient client = new SmtpClient(); 4 3 5 4 // 设置用户名和密码验证 6 5 client.Credentials = new System.Net.NetworkCredential(txtUserName.Text,txtPassword.Text); 7 6 8 7 // 设置smtp服务器地址和端口 9 8 client.Host = txtHost.Text; 10 9 client.Port = Convert.ToInt32(txtPort.Text); 11 10 12 11 // 实例化一封新的邮件 13 12 MailMessage newMessage = new MailMessage(); 14 13 // 设置发送者 15 14 newMessage.From = new MailAddress(txtUserName.Text); 16 15 17 16 // 可以添加多个接收邮箱 18 17 // newMessage.To.Add(接收邮箱); 19 18 newMessage.To.Add(txtReceiver.Text); 20 19 21 20 newMessage.Subject = txtSubject.Text; 22 21 // 添加附件,也能多添加 23 22 // newMessage.Attachments.Add(new Attachment(附件路径)); 24 23 newMessage.Attachments.Add(new Attachment(txtAttachment.Text)); 25 24 // 邮件正文 26 25 newMessage.Body = txtMessage.Text; 27 26 28 27 try 29 28 { 30 29 client.Send(newMessage); 31 30 } 32 31 catch(Exception exception) 33 32 { 34 33 MessageBox.Show("发送失败,原因:" + exception.Message); 35 34 } 36 35 MessageBox.Show("发送成功");