I use this script to send over 1500 Mails with invoices. Outlook starts in the background or foreground if it is started. You need an installed Outlook application.
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
With the help of the TextWriter object (to create Windows files with the correct codepage) I create the script at runtime. The scriptfile contains a "header" with the definitions to get access to Outlook, and the send parameters for each mail with the file path to the attachment. At the end I start it via jShell.
Please use Google to check more options (search for vbs & Outlook & send mails). Quite easy.
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
for each mail
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
			
			
			
				B4X:
			
		
		
		Const olByValue = 1
Const olMailItem = 0
    
Dim oOApp
Dim oOMail
Set oOApp = CreateObject("Outlook.Application")
Set oOMail = oOApp.CreateItem(olMailItem)
With oOMail
    .To = "customer@someserver.com"
    .SentOnBehalfOfName = "myemailaddress@mycompany.com"
    .Subject = "Subject"
    .Body = "The mailbody"
    '.Attachments.Add "C:\somefile.txt", olByValue, 1
    '.Send -> send direct, .Save = Draft
    .DeferredDeliveryTime = Date & " 22:00:00" 'delay if needed
    .send
End WithWith the help of the TextWriter object (to create Windows files with the correct codepage) I create the script at runtime. The scriptfile contains a "header" with the definitions to get access to Outlook, and the send parameters for each mail with the file path to the attachment. At the end I start it via jShell.
Please use Google to check more options (search for vbs & Outlook & send mails). Quite easy.
			
				B4X:
			
		
		
		Dim Writer As TextWriter
            Writer.Initialize2(File.OpenOutput(File.DirApp & "/SENDMAILVBS","sendmails.vbs", False),"cp1252")
            Dim vbsscript As String
            
            
            vbsscript=$"outFile="${File.DirApp}/SENDMAILVBS/${BatchName}.log""$ & CRLF
            Writer.WriteLine(vbsscript)
            vbsscript=$"Set FSO = CreateObject("Scripting.FileSystemObject")"$
            Writer.WriteLine(vbsscript)
            vbsscript="Set objFile = FSO.CreateTextFile(outFile,True)" & CRLF &CRLF
            Writer.WriteLine(vbsscript)
            
            vbsscript ="Const olByValue = 1" & CRLF & "Const olMailItem = 0" & CRLF & "Dim oOApp" & CRLF & "Dim oOMail" & CRLF & $"Set oOApp = CreateObject("Outlook.Application")"$ & CRLF
            Writer.WriteLine(vbsscript)for each mail
			
				B4X:
			
		
		
		vbsscript= CRLF & "Set oOMail = oOApp.CreateItem(olMailItem)" & CRLF
                        vbsscript=vbsscript& "With oOMail" & CRLF
                        vbsscript=vbsscript& $" .To = "${Email}""$ &CRLF
                        vbsscript=vbsscript& $".SentOnBehalfOfName = "xxxxx""$ & CRLF
                        vbsscript=vbsscript& $".Subject = "The subject" & CRLF
                        
                        MBody = $"Dear Mr. Smith, " & vbCrLf & vbCrLf & _
                        "Line 2 " & vbCrLf & vbCrLf & _
                        "Line 3" & vbCrLf & _
                        
                        vbsscript=vbsscript& $".Body = "${MBody} "$ & CRLF
                        vbsscript=vbsscript& $".Attachments.Add "${PDFFilePath&PDFFilename}" "$ & CRLF
                        vbsscript=vbsscript& $".DeferredDeliveryTime = Date & " ${MailTimeSP.Value}:00:00""$ & CRLF
                        vbsscript=vbsscript& $".Send()"$ & CRLF
                        vbsscript=vbsscript& $"End With"$ & CRLF
                        Writer.WriteLine(vbsscript)