Sample code for 30+ languages & platforms
SQL Server

Log In to an IMAP Server

See more IMAP Examples

Demonstrates the Chilkat Imap.Login method, which authenticates the connected IMAP session using a login name and password. Connect must be called first. This example connects, logs in, and disconnects.

Background: Authentication is a distinct step from connecting: after the TCP/TLS connection is up, Login sends the credentials so the server will grant access to the account's mailboxes. The exact mechanism (plain LOGIN, SASL, or OAuth2) depends on the server and the AuthMethod setting. For providers that require OAuth2 (such as Gmail and Outlook.com), the password is an access token rather than an account password.

Chilkat SQL Server Downloads

SQL Server
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    DECLARE @sTmp0 nvarchar(4000)
    DECLARE @success int
    SELECT @success = 0

    --  Demonstrates the Imap.Login method, which authenticates the connected IMAP session using
    --  a login name and password.  Call Connect first.

    DECLARE @imap int
    EXEC @hr = sp_OACreate 'Chilkat.Imap', @imap OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    EXEC sp_OASetProperty @imap, 'Ssl', 1
    EXEC sp_OASetProperty @imap, 'Port', 993

    --  Connect before logging in.
    EXEC sp_OAMethod @imap, 'Connect', @success OUT, 'imap.example.com'
    IF @success = 0
      BEGIN
        EXEC sp_OAGetProperty @imap, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @imap
        RETURN
      END

    --  Authenticate with the login name and password.
    EXEC sp_OAMethod @imap, 'Login', @success OUT, 'user@example.com', 'myPassword'
    IF @success = 0
      BEGIN
        EXEC sp_OAGetProperty @imap, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @imap
        RETURN
      END

    PRINT 'Logged in to the IMAP server.'

    EXEC sp_OAMethod @imap, 'Disconnect', @success OUT
    IF @success = 0
      BEGIN
        EXEC sp_OAGetProperty @imap, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @imap
        RETURN
      END

    EXEC @hr = sp_OADestroy @imap


END
GO