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 = "xxxx@xxxx.com" 
                        .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。请帮忙。

4

2 回答 2

0

您的选择是:
1. 安装最新的防病毒应用程序
2. 编写 COM 插件而不是外部应用程序
3. 使用扩展 MAPI(仅限 C++ 或 Delphi)
4.赎回(可从任何语言访问)

于 2013-10-17T16:37:14.780 回答
0

您可以尝试第三方电子邮件服务提供商,如 Amazon SES、SendGrid 等。然后使用他们提供的 SMTP 或 API,您可以从任何电子邮件地址发送邮件,但请注意,您只需授权该电子邮件地址一次。

他们通常会发送一封电子邮件,其中包含指向电子邮件地址的链接,您只需单击它即可授权该地址。

于 2018-12-06T13:37:20.303 回答