2013-10-17 39 views
0

我正在嘗試製作一個VB.NET應用程序,它將郵件發送到某個電子郵件帳戶,該帳戶的域名不是Gmail,Hotmail等。它屬於我工作的公司。 我的問題是,Outlook提示「一個程序試圖以您的名義發送電子郵件......」的警告,它需要點擊發送郵件(這是因爲它使用當前的PC用戶帳戶發送郵件)。我需要使它自動化(不需要點擊)如何發送郵件而不詢問發件人帳戶的權限?

由於這是我第一次做這種事情,我必須問是否有辦法發送沒有發件人帳戶的郵件?所以我不需要請求發送郵件的權限,也不需要在代碼中寫入任何密碼。或者,如果它至少不能使我的.exe「被信任」,以使其執行的公司內部的任何一臺PC都可用。

我必須在我的代碼中更改哪些行以跳過該消息?

Dim OutApp As Object 
     Dim OutMail As Object 
     Dim xlApp As Excel.Application 
     Dim xlWorkBook As Excel.Workbook 
     Dim xlWorkSheet As Excel.Worksheet 
     Dim date As String 
     Dim proc As System.Diagnostics.Process  

     For Each proc In System.Diagnostics.Process.GetProcessesByName("EXCEL") 
      If proc.MainWindowTitle.Trim.Length = 0 Then 
       proc.Kill() 
      End If 
     Next 

     xlApp = New Excel.ApplicationClass 
     xlWorkBook = xlApp.Workbooks.Open("\\file.xlsm") 
     xlWorkSheet = xlWorkBook.Worksheets("sheet") 

     Try 
      xlWorkSheet.Range("E4").Select() 
      xlWorkSheet.Range("E4").Activate() 
      date = xlApp.ActiveCell.Value 

      Do While Convert.ToString(xlApp.ActiveCell.Value) <> "" 
       'The mail part start here 
       If (DateTime.Today - CDate(date)).Days = 180 Then 
        OutApp = CreateObject("Outlook.Application") 
        OutMail = OutApp.CreateItem(0) 

        'On Error Resume Next 
        With OutMail 
         .To = "[email protected]" 
         .CC = "" 
         .BCC = "" 
         .Subject = "subject" 
         .Body = "text" 
         .Send() 
        End With 
        ' On Error GoTo 0 

        OutMail = Nothing 
        OutApp = Nothing 

       End If 

       xlApp.ActiveCell.Offset(1, 0).Select() 
       date = xlApp.ActiveCell.Value 

      Loop 
     Catch ex As Exception 

      MsgBox(ex.ToString())   

     End Try 

這是一個控制檯應用程序,所以這裏沒有web.config。 請幫忙。

+0

嘗試通過SMTP而不是Outlook發送。 –

回答

0

你的選項
1.安裝最新的AV
2.編寫一個COM插件,而不是外部的應用程序
3.使用擴展MAPI(C++或僅德爾福)
4. Redemption(從任何可訪問語言)

相關問題