コード例 #1
0
        public void SendAsyncTest()
        {
            SmtpMail target = SmtpMail.Instance;    // TODO: 初始化为适当的值
            string   title  = "测试";                 // TODO: 初始化为适当的值
            string   body   = "你好";                 // TODO: 初始化为适当的值
            string   to     = "*****@*****.**"; // TODO: 初始化为适当的值

            target.SendAsync(title, body, to);
            Thread.Sleep(10000);
        }
コード例 #2
0
        public bool Send()
        {
            MailMessage Email    = new MailMessage();
            MailAddress MailFrom = new MailAddress(_MailFrom, _MailFrom);

            Email.From = MailFrom;
            foreach (string Receiptent in _MailToList)
            {
                Email.To.Add(Receiptent);
            }
            if (!string.IsNullOrEmpty(_MailToCcList))
            {
                Email.CC.Add(_MailToCcList);
            }
            if (!string.IsNullOrEmpty(_MailToBccList))
            {
                Email.Bcc.Add(_MailToBccList);
            }
            Email.Subject = _MailSubject;

            //Email.Body = GetMailBodyWithTemplate(_MailBody);
            Email.Body       = _MailBody;
            Email.IsBodyHtml = _isHTML;
            Email.Priority   = (MailPriority)_Priority;

            foreach (string attachment in _MailAttachments)
            {
                if (File.Exists(attachment))
                {
                    Attachment TempAttachment = new Attachment(attachment);
                    Email.Attachments.Add(TempAttachment);
                }
            }


            // Smtp Client
            SmtpClient SmtpMail = null;

            if (UseDefaultCredentials)
            {
                SmtpMail = new SmtpClient();
                SmtpMail.UseDefaultCredentials = true;
            }
            else
            {
                SmtpMail = new SmtpClient(_SMTPServer, _SMTPPort);
                //if (!string.IsNullOrEmpty(mSMTPUsername) && !string.IsNullOrEmpty(mSMTPPassword))
                SmtpMail.Credentials = new NetworkCredential(_SMTPUsername, _SMTPPassword);
            }

            SmtpMail.EnableSsl = _mSMTPSSL;

            Boolean   bResult = true;
            Exception exSend  = null;

            try
            {
                ValidateMailSettings();
                if (_SendAsync)
                {
                    SmtpMail.SendAsync(Email, Email);
                }
                else
                {
                    SmtpMail.Send(Email);
                }
            }

            catch (ArgumentNullException aex)
            {
                bResult = false;
                exSend  = aex;
            }
            catch (SmtpFailedRecipientsException e)
            {
                for (int k = 0; k < e.InnerExceptions.Length; k++)
                {
                    bResult = false;

                    SmtpStatusCode StatusCode = e.InnerExceptions[k].StatusCode;
                    if (StatusCode == SmtpStatusCode.MailboxUnavailable ||
                        StatusCode == SmtpStatusCode.MailboxBusy)
                    {
                        try
                        {
                            if (_TryAgianOnFailure)
                            {
                                Thread.Sleep(_TryAgainDelayTime);
                                // send the message
                                string sTemp = "";
                                if (_SendAsync)
                                {
                                    SmtpMail.SendAsync(Email, sTemp);
                                }
                                else
                                {
                                    SmtpMail.Send(Email);
                                }
                                // Message was sent.
                                bResult = true;
                            }
                        }
                        catch (Exception ex)
                        {
                            exSend  = ex;
                            bResult = false;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                bResult = false;
                exSend  = ex;
            }


            return(bResult);
        }