How to validate SMTP server

后端 未结 2 1323
臣服心动
臣服心动 2021-02-06 12:59

I am working on a project where I have to validate the given SMTP server i.e in a textbox user will provide the detail and then he will click on a test button. I want to check w

2条回答
  •  忘了有多久
    2021-02-06 13:29

    Attempt to connect to the SMTP port, and ensure you get a line back from it that starts with "220 " and contains the letters "SMTP". A typical example response would be:

    220 prod.monadic.cynic.net ESMTP Postfix (2.5.5)
    

    Then be polite and send "QUIT\r\n" to hang up.

    You can do some further testing, if you like, such as testing that the user can likely deliver messages. For this, you'd send a HELO command with your hostname (or any string, really), a MAIL FROM command using the user's e-mail address, and a RCPT TO:. Most servers at that point will tell you if relaying is not allowed. (I'm assuming you're doing this from the computer from which you will later be sending mail.) So long as you QUIT after that, rather than issuing a DATA command and the message data, nothing will be sent.

    Here's an example session, done from the shell using the "netcat" command, showing that my server exists, but will not relay mail for people from random IP addresses.

        $ nc prod.monadic.cynic.net. 25
        220 prod.monadic.cynic.net ESMTP Postfix (2.5.5)
        HELO cynic.net
        250 prod.monadic.cynic.net
        MAIL FROM:
        250 2.1.0 Ok
        RCPT TO:
        554 5.7.1 : Relay access denied
        QUIT
        221 2.0.0 Bye
        $
    

提交回复
热议问题