Command SMTP_Auth

4D Internet Commands

SMTP_Auth

version 2003 (Modified)


SMTP_Auth (smtp_ID; userName; password{; authMode}) Integer

ParameterTypeDescription
smtp_IDLongintMessage reference
userNameStringUser name to be used for SMTP authentication
passwordStringPassword to be used for SMTP authentication
authModeIntegerAuthentication mode to be used:
0 or omitted = Mode defined by server
1= PLAIN, 2 = LOGIN, 3 = CRAM-MD5

Function result Integer Error code

Description

The SMTP_Auth command allows sending a message referenced by smtp_ID when an authentication mechanism is required by the SMTP server. This type of authentication is required by some SMTP servers in order to reduce the risk that messages have been falsified or that the sender's identity has been usurped, in particular for the purpose of spamming.

This command can be used whether authentication is needed or not since it is only executed if userName and password are not null strings.

smtp_ID is the long integer reference to the mail message created with the SMTP_New command.

userName is the authentication user name on the SMTP server. userName should not contain the domain. For example, for the address "[email protected]," userName would just be "jack."

password is the authentication password for userName on the SMTP server.

Note: If userName and/or password are null strings, the SMTP_Auth command is not executed.

The optional authMode parameter allows the "forcing" of the authentication mode used. You can pass 0, 1, 2 or 3 in this parameter:

• If you pass 0 (zero), the authentication mode used by the SMTP_Auth command will be the most secure mode supported by the server (CRAM-MD5, LOGIN then PLAIN),

• If you pass 1, the authentication method used will be PLAIN,

• If you pass 2, the authentication method used will be LOGIN,

• If you pass 3, the authentication method used will be CRAM-MD5.

If authMode is omitted, the value 0 is used by default. If the authentication method requested by this parameter is not supported by the SMTP server, an error is returned.

Example

This example enables sending a message with or without authentication depending on the content of specific fields stored in the 4D database:

   C_INTEGER($vError)
   C_LONGINT($vSmtp_id)
   C_STRING(30;$vAuthUserName;$vAuthPassword)

   $vError:=SMTP_New($vSmtp_id)
   $vError:=SMTP_Host($vSmtp_id;"wkrp.com")
   $vError:=SMTP_From($vSmtp_id;"[email protected]")
   $vError:=SMTP_Subject($vSmtp_id;"Are you there?")
   $vError:=SMTP_To($vSmtp_id;"[email protected]")
   $vError:=SMTP_Body($vSmtp_id;"Can we have a meeting?")

      ` The fields are entered if the server uses an authentication
      ` mechanism. Otherwise, null strings are returned.
   $vAuthUserName:=[Account]AuthUser
   $vAuthPassword:=[Account]AuthPass

   $vError:=SMTP_Auth($vSmtp_id;$vAuthUserName;$vAuthPassword)
   $vError:=SMTP_Send($vSmtp_id)
   $vError:=SMTP_Clear($vSmtp_id)