最近工作上需要給大量郵箱發(fā)email,每封信內(nèi)容還不完全一樣.為了偷懶,研究了一下.net2.0的System.Net.Mail ,發(fā)現(xiàn)跟.net1.0版本有不同.
       要實(shí)現(xiàn)smtp發(fā)信太簡(jiǎn)單了,這里不再班門弄斧,只是現(xiàn)在的smtp服務(wù)器本來就少,還基本都需要登陸認(rèn)證,太麻煩,看了一些文章用MailMessage.Field.Add方法實(shí)現(xiàn)登錄認(rèn)證,找了半天.net2.0中沒有該方法.(注:"大文"兄對(duì)登錄認(rèn)證的問題作了更正,為了大家閱讀方便,這里直接給出正確的方法:應(yīng)該用:
SmtpClient smtpClient = new SmtpClient("xxx.xxx.xxx.xxx");
smtpClient.Credentials = new NetworkCredential("account", "password");
smtpClient.Timeout = 100;
smtpClient.EnableSsl = false;

)
要通過網(wǎng)上的公開smtp服務(wù)器發(fā)郵件是不可能了.(其實(shí)是可以的,只是較慢)
      于是考慮通過本地smtp服務(wù)器來群發(fā),還是想偷懶,找了幾個(gè)免費(fèi)的smtp本地服務(wù)器軟件.其中magic winmail4.2和musemail server2.0兩個(gè)軟件順利通過測(cè)試,前者不需要作任何配置,安裝完畢就可以用SmtpClient.Send方法發(fā)送郵件,記住要把Host設(shè)成本地主機(jī)127.0.0.1 .美中不足是只能30天試用期,后者需要簡(jiǎn)單的配置(勾掉"強(qiáng)制進(jìn)行SMTP發(fā)信認(rèn)證",并將SMTP綁定到127.0.0.1),但是沒有時(shí)間限制.
      以下提供了關(guān)鍵代碼.
  private bool sendMail(string add, string from,string subject,string content, string attachmentadd)
        {
            try
            {
            MailMessage message = new MailMessage(from,add);
            if (attachmentadd != "")
            {
                Attachment attachment = new Attachment(attachmentadd);
                message.Attachments.Add(attachment);
            }
            if (content != "")
            {
                message.BodyEncoding = Encoding.GetEncoding("GBK");
                message.Body = content;
            }
            if (subject != "")
            {
                message.Subject = subject;
            }
            SmtpClient sc = new SmtpClient("127.0.0.1",25);       
            sc.Send(message);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                return false;
            }
            return true;

        }
    

       軟件編出來后遇到了一個(gè)問題,就是中文主題再一些郵箱(如eyou)中顯示為亂碼,且無法通過設(shè)置Encoding來解決.還有一些郵箱發(fā)送后無法收到(qianlong,tom)各位大俠幫幫忙,看看有沒有辦法解決.