Allowing users to set alerts on SharePoint lists and libraries is the easiest way to keep users informed with what is going on within your intranet and team (collaboration) sites. This functionality has been a part of SharePoint for many versions and is an easy feature for users to take advantage of. That is, IF you have all the settings correct.
Your first sign that alerts are not setup for use is when looking at the library (or list) tab in the ribbon, and you don't see the Alert me button in the Share & Track section.
There are two settings you need to check: first you need to make sure that alerts set on for the web application. Go to the web application list in Central Administration (/_admin/WebApplicationList.aspx) and then click the General Settings ‘gears' button in the Web Applications ribbon. Then select General Settings in the drop-down menu.
As shown in the image above, make sure in the Alerts section, the Alerts on this server are is set to On.
The second setting you need to have configured is the outgoing e-mail settings. From the System Settings page in Central Administration, click the Configure outgoing e-mail settings link under the E-Mail and Text Messages (SMS) section.
On the Outgoing E-Mail Settings page, enter the correct outbound SMTP server, From address, and the rest of the information on the form. If you do not specify a SMTP server port, port 25 will be used.
Once you have ensured the alerts feature is turned on and you have correctly configured the outgoing e-mail settings, the Alert me button will show up after refreshing the page.
It has been my experience that you have to wait several minutes for the Alert me button to show after performing the steps above. You can also enable SharePoint alerts using PowerShell. To enable SharePoint alerts via PowerShell, use the following commands – make sure you replace – insert the full URL of the web app – with your correct URL (e.g. https://intranet.mycompany.com ):
$webapp=get-spwebapplication "insert the full URL of the web app"
$webapp.alertsenabled = $true