我正在尝试创建一个将邮件发送到某个电子邮件帐户的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
。
请帮忙。
答案 0 :(得分:0)
您的选择是:
1.安装最新的防病毒应用程序
2.编写COM插件而不是外部应用程序
3.使用扩展MAPI(仅限C ++或Delphi)
4. Redemption(可从任何语言访问)
答案 1 :(得分:0)
您可以尝试使用第三方电子邮件服务提供商,例如Amazon SES,SendGrid等。然后,使用它们提供的SMTP或API,您可以从任何电子邮件地址发送邮件,但请注意,您只需一次授权电子邮件地址。 / p>
他们通常会发送一封电子邮件,其中包含指向该电子邮件地址的链接,您只需单击它即可授权该地址。