Sample code for 30+ languages & platforms
Go

Send an SMTP NOOP Command

See more SMTP Examples

Demonstrates the Chilkat MailMan.SmtpNoop method, which sends an SMTP NOOP command to the server. NOOP does nothing except elicit a positive response, which is useful for keeping a connection alive or verifying it is still responsive. This example opens an SMTP connection, sends a NOOP, and closes.

Background: When holding an SMTP connection open across many sends (see OpenSmtpConnection), an idle stretch can cause the server to time out and drop the socket. A periodic NOOP keeps the session active and confirms the server is still responding, so the next SendEmail doesn't fail on a silently-closed connection.

Chilkat Go Downloads

Go
    success := false

    //  Demonstrates the MailMan.SmtpNoop method, which sends an SMTP NOOP command to the server.
    //  NOOP does nothing except elicit a positive response, useful for keeping a connection
    //  alive or verifying it is still responsive.

    mailman := chilkat.NewMailMan()

    //  Configure the SMTP server connection.
    mailman.SetSmtpHost("smtp.example.com")
    mailman.SetSmtpPort(465)
    mailman.SetSmtpSsl(true)
    mailman.SetSmtpUsername("user@example.com")
    mailman.SetSmtpPassword("myPassword")

    //  Open the SMTP connection.

    success = mailman.OpenSmtpConnection()
    if success == false {
        fmt.Println(mailman.LastErrorText())
        mailman.DisposeMailMan()
        return
    }

    //  Send a NOOP to keep the connection alive.
    success = mailman.SmtpNoop()
    if success == false {
        fmt.Println(mailman.LastErrorText())
        mailman.DisposeMailMan()
        return
    }

    success = mailman.CloseSmtpConnection()
    if success == false {
        fmt.Println(mailman.LastErrorText())
        mailman.DisposeMailMan()
        return
    }

    fmt.Println("SMTP NOOP succeeded.")

    mailman.DisposeMailMan()