簡體   English   中英

使用Powershell發送具有不同“發件人”地址的電子郵件

[英]using powershell to send emails with different From addresses

我使用Powershell從Outlook發送電子郵件(完全自動過程)。 這非常適合默認郵箱。 我在開發網絡中有很多限制,不能使用Outlook和Powershell以外的任何軟件。

我的問題是:有沒有一種方法可以使用powershell從Outlook中的其他帳戶發送電子郵件(在Outlook中,我有三個帳戶A,B和C),即使我有一個預定的帳戶也是如此。

我使用的代碼是這個。

$o = New-Object -com Outlook.Application
$mail = $o.CreateItem(0)
$mail.importance = 2
$mail.subject = "SUBJECT"
$mail.body = "BODY"
$mail.To = "email001@xx.com;"
$mail.Send()

是否可以設置一個屬性,使電子郵件來源為B或C,而不是預定的A。

您需要設置MailItem類的SendUsingAccount屬性,該屬性允許設置一個Account對象,該對象表示要在其下發送MailItem的帳戶。 例如:

Sub SendUsingAccount() 
 Dim oAccount As Outlook.account 
 For Each oAccount In Application.Session.Accounts 
   If oAccount.AccountType = olPop3 Then 
     Dim oMail As Outlook.MailItem 
     Set oMail = Application.CreateItem(olMailItem) 
     oMail.Subject = "Sent using POP3 Account" 
     oMail.Recipients.Add ("someone@example.com") 
     oMail.Recipients.ResolveAll 
     oMail.SendUsingAccount = oAccount 
     oMail.Send 
   End If 
 Next 
End Sub 

請注意,Microsoft當前不建議也不支持從任何無人參與的非交互客戶端應用程序或組件(包括ASP,ASP.NET,DCOM和NT Services)對Microsoft Office應用程序進行自動化,因為Office可能表現出不穩定在此環境中運行Office時的行為和/或死鎖。

如果要構建在服務器端上下文中運行的解決方案,則應嘗試使用對無人值守執行安全的組件。 或者,您應該嘗試找到允許至少部分代碼在客戶端運行的替代方法。 如果您從服務器端解決方案中使用Office應用程序,則該應用程序將缺少許多成功運行所需的功能。 此外,您將承擔整體解決方案穩定性的風險。 在《 服務器端Office自動化注意事項》一文中了解有關此內容的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM