问题描述
很着急,急求邮件发送的实例,在网上搜的,测试都不正确。。。求一个正确的例子
解决方案
解决方案二:
C#Winform邮件发送类邮件发送类:usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.Net;///<summary>///sendmail的摘要说明///</summary>namespacedonny{publicstructEmailParms{///<summary>///收件人邮箱地址///</summary>publicstringToEmailAddress;///<summary>///发件人邮箱地址///</summary>publicstringFromEmailAddress;///<summary>///发件人邮箱密码///</summary>publicstringFromEmailPassword;///<summary>///邮件主题///</summary>publicstringEmailSubject;///<summary>///邮件内容///</summary>publicstringEmailBody;///<summary>///发件人姓名///</summary>publicstringEmailPersonName;///<summary>///SMTP主机名称///例:Gmail为smtp.gmail.com///</summary>publicstringEmailHostName;///<summary>///邮件优先级:high(高)、low(低)、normal(正常)///默认为high///</summary>publicstringEmailPriority;///<summary>///邮箱端口号///例:Gmail为587,一般为25///</summary>publicintEmailPort;///<summary>///邮件是否加密:true(加密),false(不加密)///默认为true///</summary>publicboolisEnableSsl;///<summary>///邮件内容是否为HTML格式(true加密,false不加密),默认为false///</summary>publicboolisBodyHtml;///<summary>///邮件编码类型:UTF7、UTF8(推荐)、UTF32、ASCII和Default.///</summary>publicstringEncodingType;}publicclasssendmail{publicsendmail(){////TODO:在此处添加构造函数逻辑//}publicstaticboolSendingEmail(EmailParmsEmail){System.Net.Mail.MailMessagemms=newSystem.Net.Mail.MailMessage();System.Text.EncodingemaiEncodingType;//设置邮件编码类型switch(Email.EncodingType){case"UTF7":emaiEncodingType=System.Text.Encoding.UTF7;break;case"UTF8":emaiEncodingType=System.Text.Encoding.UTF8;break;case"UTF32":emaiEncodingType=System.Text.Encoding.UTF32;break;case"ASCII":emaiEncodingType=System.Text.Encoding.ASCII;break;default:emaiEncodingType=System.Text.Encoding.Default;break;}mms.To.Add(Email.ToEmailAddress);mms.From=newSystem.Net.Mail.MailAddress(Email.FromEmailAddress,Email.EmailPersonName,emaiEncodingType);mms.Subject=Email.EmailSubject;mms.SubjectEncoding=emaiEncodingType;mms.Body=Email.EmailBody;mms.BodyEncoding=emaiEncodingType;//设置邮件是否为HTML格式if(Email.isBodyHtml==false){mms.IsBodyHtml=Email.isBodyHtml;}else{mms.IsBodyHtml=true;}//设置邮件优级先级switch(Email.EmailPriority){case"normal":mms.Priority=System.Net.Mail.MailPriority.Normal;break;case"low":mms.Priority=System.Net.Mail.MailPriority.Low;break;default:mms.Priority=System.Net.Mail.MailPriority.High;break;}System.Net.Mail.SmtpClientclient=newSystem.Net.Mail.SmtpClient();client.Credentials=newSystem.Net.NetworkCredential(Email.FromEmailAddress,Email.FromEmailPassword);client.Port=Email.EmailPort;client.Host=Email.EmailHostName;client.EnableSsl=Email.isEnableSsl;try{client.Send(mms);returntrue;}catch(Exceptionex){returnfalse;}}}}使用方法:EmailParmsmailstr=newEmailParms();mailstr.EmailBody="aaaa";mailstr.EmailHostName="smtp.XXXX.com";mailstr.EmailPersonName="admin";mailstr.EmailPort=25;mailstr.EmailPriority="high";mailstr.EmailSubject="主题";mailstr.EncodingType="UTF8";mailstr.FromEmailAddress="a@a.com";mailstr.FromEmailPassword="1111111";mailstr.isBodyHtml=false;mailstr.isEnableSsl=false;mailstr.ToEmailAddress="b@b.com";sendmail.SendingEmail(mailstr);使用时候注意:有时候防火墙会拦截邮件。需要在防火墙里设置端口开放,用那个就开发那个。不要频繁大范围的发送邮件,负责机房很快就会把你服务器的相关端口给封闭的。写个读邮件的给你看看,至于读数量,研究下就出来了protectedvoidReadEmail_Click(objectsender,EventArgse){try{TcpClienttcpclient=newTcpClient();//createaninstanceofTcpClienttcpclient.Connect("pop.gmail.com",995);//HOSTNAMEPOPSERVERandgmailusesportnumber995forPOPSystem.Net.Security.SslStreamsslstream=newSslStream(tcpclient.GetStream());//ThisisSecureStream//openedtheconnectionbetweenclientandPOPServersslstream.AuthenticateAsClient("pop.gmail.com");//authenticateasclient//boolflag=sslstream.IsAuthenticated;//checkflagSystem.IO.StreamWritersw=newStreamWriter(sslstream);//AsssignedthewritertostreamSystem.IO.StreamReaderreader=newStreamReader(sslstream);//Assignedreadertostreamsw.WriteLine("USERyour_gmail_user_name@gmail.com");//referPOPrfccommand,thereveryfewaround6-9commandsw.Flush();//senttoserversw.WriteLine("PASSyour_gmail_password");sw.Flush();sw.WriteLine("RETR1");//thiswillretriveyourfirstemailsw.Flush();sw.WriteLine("Quit");//closetheconnectionsw.Flush();stringstr=string.Empty;stringstrTemp=string.Empty;while((strTemp=reader.ReadLine())!=null){if(strTemp==".")//findthe.characterinline{break;}if(strTemp.IndexOf("-ERR")!=-1){break;}str+=strTemp;}Response.Write(str);Response.Write("<BR>"+"Congratulation......!!!Youreadyourfirstgmailemail");}catch(Exceptionex){Response.Write(ex.Message);}}