我想要做的就是自動從Thunderbird帳戶發送電子郵件。用戶甚至不必點擊電子郵件的發送按鈕。自動發送電子郵件從雷鳥與Excel VBA
我試過使用CDO,但問題在於您必須輸入您從中發送的帳戶的用戶名和密碼。這個宏將被用於幾個不同的賬戶,所以輸入每個用戶名和密碼是不可行的。如果有人從Thunderbird中檢索用戶名,密碼和smtp服務器,我可以使用CDO,但是我覺得我已經擁有的代碼應該能夠在沒有CDO的情況下實現這一點(希望)。
這是我看到的唯一的代碼(它無處不在),就是爲了完成這個。
Sub Thunderbird()
Dim thund As String
Dim email As String
Dim cc As String
Dim bcc As String
Dim subj As String
Dim body As String
email = "[email protected]"
cc = "[email protected]"
bcc = "[email protected]"
subj = "Subject"
body = "body text"
thund = "C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe"
thund = thund & " -compose " & Chr$(34) & "mailto:" & email & "?"
thund = thund & "cc=" & Chr$(34) & cc & "?"
thund = thund & "bcc=" & Chr$(34) & bcc & "?"
thund = thund & "subject=" & Chr$(34) & subj & Chr$(34)
thund = thund & "body=" & Chr$(34) & body
Call Shell(thund, vbNormalFocus)
SendKeys "^+{ENTER}", True
End Sub
截至目前,該領域cc
,bcc
,subj
和body
都是正確識別。問題是他們都被添加到第一個字段的末尾。例如,現在代碼的方式,cc
將被放入cc字段,但bcc
,subj
和body
都會被附加到Thunderbird的cc字段中的cc
。
如果我評論cc
出來,然後bcc
被放在正確的領域,但subj
和body
獲得雷鳥的密件抄送字段添加到bcc
。
如果我評論cc
和bcc
出來,然後subj
被放置在正確的領域,但body
獲取雷鳥的主題字段添加到subj
。
所以基本上我需要在每一行的末尾添加正確的代碼。我試過"?"
和Chr$(34)
都無濟於事。
最後,SendKeys "^+{ENTER}", True
根本不起作用。這可能是因爲沒有將所有參數放在Thunderbird的正確字段中,但不確定,因爲我無法正常工作。來自Thunderbird的電子郵件會顯示,但此代碼並不像發送電子郵件那樣發送。
SOLUTION(由@zedfoxus作爲提供)
Sub Thunderbird()
Dim thund As String
Dim email As String
Dim cc As String
Dim bcc As String
Dim subj As String
Dim body As String
email = "[email protected]"
cc = "[email protected]"
bcc = "[email protected]"
subj = "Subject"
body = "body text"
thund = "C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe" & _
" -compose " & """" & _
"to='" & email & "'," & _
"cc='" & cc & "'," & _
"bcc='" & bcc & "'," & _
"subject='" & subj & "'," & _
"body='" & body & "'" & """"
Call Shell(thund, vbNormalFocus)
Application.Wait (Now + TimeValue("0:00:03"))
SendKeys "^{ENTER}", True
End Sub
[通過Thunderbird發送Excel宏](https:// stackoverflow。com/questions/31283948/excel-macro-sending-thunderbird/31284639#31284639) – 0m3r