DeleteMail (FB) ¶ FUNCTION_BLOCK DeleteMail EXTENDS CBM.ETrigTo The “DeleteMail” function block establishes a connection with the username and password from the userInfo variable to the specified mail server and deletes a email through it mail ID. The mail ID is essential for deleteing the mail on the server. InOut: Scope Name Type Comment Inherited from Input xExecute BOOL Rising edge: Action starts Falling edge: Resets outputs If a falling edge occurs before the function block has completed its action, the outputs operate in the usual manner and are only reset if either the action is completed or in the event of an error. In this case, the corresponding output values ( xDone , xError ) are present at the outputs for exactly one cycle. ETrigTo udiTimeOut UDINT Defines the time (µs) after which an FB (e.g. requiring an external acknowledgement) aborts operation due to a timeout with error message. ETrigTo Output xDone BOOL TRUE : Action successfully completed ETrigTo xBusy BOOL TRUE : Function block active ETrigTo xError BOOL TRUE : Error occurred, function block aborts action FALSE : No error ETrigTo Inout ServerFB Server Input MailToDelete EMAIL_RECV The email which will be deleted. userInfo USER_INFO Authentication information, to establish a connection to the email server. Output eError ERROR Local library error ID sServerMessage STRING(255) Detailed error message from the server
IecVarAccess.VarAccGetAddress (METH) ¶ METHOD VarAccGetAddress : POINTER TO BYTE InOut: Scope Name Type Return VarAccGetAddress POINTER TO BYTE Input pNode IBaseTreeNode pResult POINTER TO UDINT
ReceiveMail (FB) ¶ FUNCTION_BLOCK ReceiveMail EXTENDS CBM.ETrigTo The “ReceiveMail” function block establishes a connection with the username and password from the “userInfo” variable to the specified mail server and receives the oldest mail from the mailbox. Additionally the memory for the body text must be reserved in the “emailMemory”. When the text is longer than the size of the memory, the message is cut and an information is returned. In case there is an attachment, the folder where to save it to should be specified. If not the attachment will not be saved and an information is returned. To change the buffer size for reading an email, the parameter “iBufferReceive” can be changed by selecting the library in the library manager and change the value. InOut: Scope Name Type Comment Inherited from Input xExecute BOOL Rising edge: Action starts Falling edge: Resets outputs If a falling edge occurs before the function block has completed its action, the outputs operate in the usual manner and are only reset if either the action is completed or in the event of an error. In this case, the corresponding output values ( xDone , xError ) are present at the outputs for exactly one cycle. ETrigTo udiTimeOut UDINT Defines the time (µs) after which an FB (e.g. requiring an external acknowledgement) aborts operation due to a timeout with error message. ETrigTo Output xDone BOOL TRUE : Action successfully completed ETrigTo xBusy BOOL TRUE : Function block active ETrigTo xError BOOL TRUE : Error occurred, function block aborts action FALSE : No error ETrigTo Inout ServerFB Server Input userInfo USER_INFO These variables include authentication information to establish a connection to the mail server. emailMemory EMAIL_MEMORY The memory allocation for the message text as well as the folder where an attachment should be saved. Output eError ERROR Local library error ID Receive EMAIL_RECV This variable includes all important information from the received mail sServerMessage STRING(255) Detailed error message from the server
IecVarAccess.VarAccGetAddress2 (METH) ¶ METHOD VarAccGetAddress2 : POINTER TO BYTE InOut: Scope Name Type Return VarAccGetAddress2 POINTER TO BYTE Input pNode IBaseTreeNode dwOffset XWORD pResult POINTER TO UDINT
SendMail (FB) ¶ FUNCTION_BLOCK SendMail EXTENDS CBM.ETrigTo The “SendMail” function block establishes a connection to the specified email server and sends all given information to the server. An optional attachment can be added. To change the buffer size for reading a file the parameter “iBufferSendAttachment” can be changed by selecting the library in the library manager. InOut: Scope Name Type Comment Inherited from Input xExecute BOOL Rising edge: Action starts Falling edge: Resets outputs If a falling edge occurs before the function block has completed its action, the outputs operate in the usual manner and are only reset if either the action is completed or in the event of an error. In this case, the corresponding output values ( xDone , xError ) are present at the outputs for exactly one cycle. ETrigTo udiTimeOut UDINT Defines the time (µs) after which an FB (e.g. requiring an external acknowledgement) aborts operation due to a timeout with error message. ETrigTo Output xDone BOOL TRUE : Action successfully completed ETrigTo xBusy BOOL TRUE : Function block active ETrigTo xError BOOL TRUE : Error occurred, function block aborts action FALSE : No error ETrigTo Inout ServerFB Server Input userInfo USER_INFO Login name and password for the SMPTP server. If no authorization is required set userInfo.sUserName to ‘’. mailToSend EMAIL_SEND Information about the mail to send. mimeType MIME_TYPE Type of the email, whether text or html Output eError ERROR Local library error ID sServerMessage STRING(255) Detailed error message from the server
Server (FB) ¶ FUNCTION_BLOCK Server EXTENDS CBM.ETrigTo The server is essential to send, receive and delete emails. The Server must be started before any action can be performed. InOut: Scope Name Type Initial Comment Inherited from Input xExecute BOOL Rising edge: Action starts Falling edge: Resets outputs If a falling edge occurs before the function block has completed its action, the outputs operate in the usual manner and are only reset if either the action is completed or in the event of an error. In this case, the corresponding output values ( xDone , xError ) are present at the outputs for exactly one cycle. ETrigTo udiTimeOut UDINT Defines the time (µs) after which an FB (e.g. requiring an external acknowledgement) aborts operation due to a timeout with error message. ETrigTo Output xDone BOOL TRUE : Action successfully completed ETrigTo xBusy BOOL TRUE : Function block active ETrigTo xError BOOL TRUE : Error occurred, function block aborts action FALSE : No error ETrigTo Input sPopServer STRING The name of the POP server. uiPortPOP UINT 110 The port of the POP server. sSMTPServer STRING The name of the SMTP server. uiPortSMTP UINT 25 The port of the SMTP server. eConnectionType CONNECTION_TYPE CONNECTION_TYPE.STD Communication via TLS or standard, default: STD xStartTLS BOOL Use STARTTLS for the SMTP connection (condition: eConnectionType = CONNECTION_TYPE.TLS) itfTLSContext NBS.ITLSContext 0 Encapsulates all the data neccecray to handle encrypted tcp connections Static initialization, as shown in the following code snippet. VAR commonName : STRING := 'MyRrasPi' ; ciCertInfo : NBS.CERT_INFO := ( psInfo := ADR ( commonName ), udiSize := LEN ( commonName )); myTLSContext : NBS.TLSContext := ( ePurpose := NBS.PURPOSE.CLIENT_SIDE , sUseCaseName := 'NBSTest' , sTLSVersion := '1.3' , ciCertInfo := ciCertInfo , udiVerificationMode := 2 ); END_VAR itfAsyncProperty NBS.IAsyncProperty 0 Runs the connect process in a own background task, usage see library Net Base Services Output eError ERROR Local library error ID (0: no error; 5001: time out)
Global Constants ¶ BufferSize (ParamList)
IecVarAccess.VarAccGetNode (METH) ¶ METHOD VarAccGetNode : IBaseTreeNode InOut: Scope Name Type Return VarAccGetNode IBaseTreeNode Input pszPath POINTER TO STRING pdwOffset POINTER TO XWORD pResult POINTER TO UDINT
BufferSize (PARAMS) ¶ InOut: Scope Name Type Initial Comment Constant iBufferReceive INT 22800 Size of the buffer, to read an incoming email, including attachment. Minimum is 255. iBufferSendAttachment INT 22800 Block size of a string to be encoded. Must be a multiple of 57, according to MIME spec.
IecVarAccess.VarAccGetNodeFullPath (METH) ¶ METHOD VarAccGetNodeFullPath : DINT InOut: Scope Name Type Comment Return VarAccGetNodeFullPath DINT Input pNode IBaseTreeNode pszPath POINTER TO STRING diMaxPath DINT valid range: [0; 16#7FFFFFFF] (negative number make no sense); values > 16#7FFF will be trimmed to 16#7FFF pResult POINTER TO UDINT