Attaching file to the Mail

Shivangi
New Contributor II

Hi,

Is it possible to attach a file from the public folder to the mail using the function,

BRApi.Utilities.SendMail(si, emailConnectionName, toEmailAddresses, subject, body, attachmentFilePaths)

Would appreciate any assistance.

Thank You.

5 REPLIES 5

RobbSalzmann
Valued Contributor

Hi @Shivangi  Here's an extender sample to help get you started

Namespace OneStream.BusinessRule.Extender.SendMail
    Public Class MainClass
        Public Function Main(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As Object, ByVal args As ExtenderArgs) As Object
            Try
                Dim fileFullName As String = "EmailAttachment.png"
                Dim failGracefully As Boolean = True
                Dim includeContentFileBytes As Boolean = True
                Dim objXFFileEx As XFFileEx = BRApi.FileSystem.GetFile(si, FileSystemLocation.ApplicationDatabase, fileFullName, includeContentFileBytes, failGracefully)
                Dim fullNamePath As String = objXFFileEx.XFFile.FileInfo.FullName
                Dim attachmentFilePaths As List(Of String) = New List(Of String)() From {
                    fullNamePath
                }
                 Return Nothing
            Catch ex As Exception
                Throw ErrorHandler.LogWrite(si, New XFException(si, ex))
            End Try
        End Function
    End Class
End Namespace

 

Hi, Thank You for providing the snippet. I tried this way to attach my file, I was getting the File path as well but when I pass the filepath in the BRApi.Utilities.SendMail(...) function I was getting an error.

Could not find a part of the path 'C:\Program Files\OneStream Software\OneStreamAppRoot\OneStreamApp\Documents\Public\File.csv

 
Code:
Dim failGracefully As Boolean = True
Dim includeContentFileBytes As Boolean = True
Dim objXFFileEx As XFFileEx = BRApi.FileSystem.GetFile(si, FileSystemLocation.ApplicationDatabase, "Documents\Public\File.csv", includeContentFileBytes, failGracefully)
Dim fullNamePath As String = objXFFileEx.XFFile.FileInfo.FullName
Dim attachmentFilePaths As List(Of String) = New List(Of String)() From {
                    fullNamePath
                }
BRApi.Utilities.SendMail(si, emailConnectionName, toEmail, subject, Msg, True, attachmentFilePaths)
 

Based on the code you posted, this error is not possible.  Its coming from somewhere else.
Using your code...

Dim failGracefully As Boolean = True
Dim includeContentFileBytes As Boolean = True
Dim objXFFileEx As XFFileEx = BRApi.FileSystem.GetFile(si, FileSystemLocation.ApplicationDatabase, "Documents\Public\File.csv", includeContentFileBytes, failGracefully)
Dim fullNamePath As String = objXFFileEx.XFFile.FileInfo.FullName

BRApi.ErrorLog.LogMessage(si, fullNamePath) 'gives "Documents/Public/File.csv" in the error log.

 

Hi, I tried once again. I'm getting the File information and Path as well but I am not able to send it via mail. Getting the same error mentioned above.

Hi Shivangi,

I am facing the same issue that its picking my local system's path. Were you able to rectify it?

Regards,

Rashi