通过控制台应用程序发送邮件asp.net时出错

时间:2010-08-09 14:21:58

标签: asp.net

我已经编写了一个测试控制台应用程序,用于检索数据并从消息队列发送邮件。我的控制台应用程序驻留在同一个应用程序中 我的主要项目的解决方案。在我的消息队列中有邮件消息。当我运行我的控制台应用程序时,有一个调用 邮件发送方法,但问题是邮件没有被发送.seenms我已经给出的mailSettings 当我通过控制台应用程序发送邮件时,没有应用web.config文件。因为我直接发送邮件时没有 控制台应用程序的帮助消息正在成功发送。当我指定邮件设置选项时 源代码本身通过smtp属性邮件正在通过控制台应用程序发送。但我想通过控制台应用程序发送邮件 web.congig上设置的邮件设置。

我如何克服这个问题。

最好的问候。

我在web.config中的设置。

                                   

我发送邮件的代码

public static void SendMailMessage(string from,string to,string bcc,string cc,string subject,string body,List attachments)         {             //实例化MailMessage的新实例             MailMessage mMailMessage = new MailMessage();

        // Set the sender address of the mail message
        mMailMessage.From = new MailAddress(from);

        // Set the recepient address of the mail message
        //string[] arrEmailTo = to.Split(',');
        //foreach (string itemTo in arrEmailTo)
        //{

        //    //mMailMessage.To.Add(new MailAddress(itemTo));
        //}
        mMailMessage.To.Add(to);

        // Check if the bcc value is null or an empty string
        if ((bcc != null) && (bcc != string.Empty))
        {
            // Set the Bcc address of the mail message
            mMailMessage.Bcc.Add(new MailAddress(bcc));
        }

        // Check if the cc value is null or an empty value
        if ((cc != null) && (cc != string.Empty))
        {
            // Set the CC address of the mail message
            mMailMessage.CC.Add(new MailAddress(cc));
        }

        // Set the subject of the mail message
        mMailMessage.Subject = subject;

        //mMailMessage.SubjectEncoding = System.Text.Encoding.UTF8;
        //int Idd=BitConverter.ToInt32(Encrypt((Id.Id).ToString()),0);
        // byte[] IdHash = Encrypt((Id.Id).ToString());//generating hassh value
        //int IdHash1 = BitConverter.ToInt32(IdHash, 0);
        //passing the hash value by encoding it


        // Set the body of the mail message
        mMailMessage.Body = body;

        //include the attachments if any

        if(attachments!=null)

            foreach (string file in attachments)
            {
                Attachment aa = new Attachment(UpPath+file);
                mMailMessage.Attachments.Add(aa);
            }

        // Secify the format of the body as HTML
        mMailMessage.IsBodyHtml = true;
        // Set the priority of the mail message to normal
        mMailMessage.Priority = MailPriority.High;

        // Instantiate a new instance of SmtpClient
        SmtpClient mSmtpClient = new SmtpClient();
        mSmtpClient.EnableSsl = true;

// *********    //通过在源代码中设置这些选项,邮件可以正常发送   // ******

        //mSmtpClient.Host = "smtp.gmail.com";
        //mSmtpClient.Port = 25;
        // Send the mail message
        //System.Net.NetworkCredential s = new System.Net.NetworkCredential("username@gmail.com", "password");
        //mSmtpClient.Credentials = s;
        //mSmtpClient.Port = 587;
        mSmtpClient.Send(mMailMessage);

// *********    //通过在源代码中设置这些选项,邮件可以正常发送   // ******         }

先谢谢

1 个答案:

答案 0 :(得分:0)

仅为了您的测试,使用您的邮件设置将App.Config添加到Console项目。