2013-04-03 92 views
0

我有一个模块正在调用这样的vb.net控制台应用程序的存储过程。这个存储过程有很多打印语句。当我执行这个控制台应用程序时,它将在控制台中显示消息。我想抓住这些消息,并通过邮件发送如何获取这些控制台消息并发送邮件消息

Dim Con As New SqlConnection(connectionString) 
Dim cmd As New SqlCommand("SaveReceiptsFromFile_GFF", Con) 

Try 
    Using Con 
     Con.Open() 

     cmd.ExecuteNonQuery() 

    End Using 
Catch ex As SqlException 
    Console.WriteLine(ex.Message) 

    sendmailwhenfail() 
End Try 
Con.Close() 

我发送邮件的模块是这样的:

Public Shared Sub sendmailwhenfail() 
     Try 
      Dim AnEmailMessage As New MailMessage 
      AnEmailMessage.From = New MailAddress("[email protected]") 
      AnEmailMessage.To.Add("[email protected]") 
      AnEmailMessage.Subject = "this is test subject" 
      AnEmailMessage.Body = "this is test body" 
      AnEmailMessage.Priority = MailPriority.High 
      Dim SimpleSMTP As New SmtpClient("smtp.gmail.com") 
      With SimpleSMTP 
       .Port = 587 
       .EnableSsl = True 
       .Credentials = _ 
       New NetworkCredential("[email protected]", "Tester123") 
       .Send(AnEmailMessage) 
      End With 
      MsgBox("Email sent") 
     Catch ex As Exception 
      MsgBox(ex.Message, MsgBoxStyle.Critical) 
     End Try 
    End Sub 

失败时,一切工作正常,我的问题是,如何抓住这些控制台消息并在邮件中发送?

回答

0

取同一异常ex.Message,ex.Source和使用它作为你的方法sendmailwhenfail(参数),例如:

try 
{ 
    // do your thing 
} 
catch (Exception ex) 
{ 
    Console.Writeline(String.Format("{0} :: {1}", ex.Source, ex.Message)); 
    SendMail(ex.Source, ex.Message); 
} 

所以,无论该错误消息是在异常也将是传递给SendMail方法。

+0

我sendmailwhenfail()没有任何参数,虽然 – 2013-04-03 18:51:57

+0

超载它,添加一个或两个它... – riaandelange 2013-04-03 19:02:03