This article will provide advanced troubleshooting tips to help resolve issues with the Email Alerting service. To follow this guide, you will need to have administrator privileges to MET/TEAM, and local administrator privileges on the application server where MET/TEAM is installed.
If you are trying to set up Email Alerts for the first time, please see the Getting Started with Email Alerting article.
Identifying the Issue
- On the application server, click on the start button, search for "Local Services", and select the corresponding result.
met - In the Services window, find the service titled "Fluke MET/TEAM Email Alerts Engine" and restart it.
- If the service fails to promptly start, then there is an issue with either the user account running the service or the database it is connecting to. Please see the sections of this article titled "Troubleshooting the User Account" and "Troubleshooting the Connection String".
- If the service starts successfully, then we need to look at the log file to identify exactly what the issue is. Proceed to the section titled "Troubleshooting Log File Errors".
Troubleshooting the User Account
- On the application server's Services screen, right-click on the Fluke MET/TEAM Email Alerts Engine and select Properties.
- Click on the Log On tab to see what user account is running the service.
- If Local System is running it, then the issue is not with the user account, since Local System always has sufficient rights to run this service.
- If a custom account is running it, you need to first make sure that the entered password is correct. You should also verify that this account is a local administrator on the server, as that is required for the service to run properly. Lastly, the account needs to at least be a member of the db_datareader and db_datawriter roles on the MET/TEAM database.
- If you are using a service account to run the MET/TEAM SQL Database, log into the MET/TEAM server with the service account to make sure the account is built by Windows properly.
Troubleshooting the Connection String
- On the application server, click on the Start button, search for "IIS", and select the corresponding result.
- In the Connections panel on the left-hand side, expand your server, then Sites, and then click on MET/TEAM.
- In the middle panel, double-click on Connection Strings.
- Double-click on the MetTrack_Dev connection string, and note the server name and database name in the custom string. We will now use this data to verify that the alerting engine is using these same settings in the Registry.
- On the application server, click on the Start button, search for "regedit", and select the corresponding result.
- In the registry go to the following key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EmailAlerts.
- Double-click on the ImagePath value.
- There is a section within the "Value data" field that contains the server and database information used by the alerting engine. Make sure that the data aligns with what was noted from IIS in step 4 of this section.
Troubleshooting Log File Errors
In METTEAM 3.0, logs can be obtained through METTEAM:
- In METTEAM, go to Help-->About-->Click the Download Log Files button
- This will give you a ZIP file of all of the METTEAM related log files. The email alerting log is titled alerting-log.txt.
- If you only want the alerting-log.txt files, they are located on the server the email alerting service is running on at C:\ProgramData\Fluke\Logs.
In METTEAM 2.3.0 and earlier, the logs can be found on the server that is running the email alerting service by going through the following:
- To find the email alert log file, you need to go to the Temp directory of the user running the service. If you are unsure what user is running the service, follow the first two steps of the "Troubleshooting the User Account" section in this article.
- If the user is Local System, then the log is under C:\Windows\Temp\alerting-log.txt for METTEAM 2.3.0 and earlier or C:\ProgramData\Fluke\Logs in METTEAM 3.0.0 or higher.
- If the user is a custom account, then the log is under C:\Users\[USER]\AppData\Local\Temp\alerting-log.txt (where [USER] is the name of the user account running the service).
- Open the log file.
- The entries are sorted chronologically and contain a date stamp at the beginning of each entry. Scroll to the date and time where you expected an email to get sent to get an idea as to what happened.
The following is a non-exhaustive list of errors/issues and how to resolve them.
Could not find a part of the path
Error:
Void WinIOError(Int32, System.String) - Could not find a part of the path 'xxxxxxx'
or
Message: The network path was not found.
Solution: The MET/TEAM system defaults for the reporting directories are inaccurate. Log into MET/TEAM as an administrator and go to Configure -> System Defaults. Find the settings whose Property fields start with "Reporting - " and make sure that they point to your report directories.
The remote name could not be resolved
Error:
Unable to send the email. Aborting...
Exception: Failure sending mail.
Stack: at System.Net.Mail.SmtpClient.Send(MailMessage message)
at MetTeam.AlertEngine.Helpers.Emailer.SendEmail(String to, String from, String title, String message, String host, Int32 port, String username, String password, Boolean useSsl, List`1 attachments, String globalCC, String globalBCC)
Inner Exception: The remote name could not be resolved: 'xxxxxxxx'
Stack: at System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object owner, Boolean async, IPAddress& address, Socket& abortSocket, Socket& abortSocket6)
at System.Net.PooledStream.Activate(Object owningObject, Boolean async, GeneralAsyncDelegate asyncCallback)
at System.Net.PooledStream.Activate(Object owningObject, GeneralAsyncDelegate asyncCallback)
at System.Net.ConnectionPool.GetConnection(Object owningObject, GeneralAsyncDelegate asyncCallback, Int32 creationTimeout)
at System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint)
at System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint)
at System.Net.Mail.SmtpClient.GetConnection()
at System.Net.Mail.SmtpClient.Send(MailMessage message)
Solution: The SMTP email server name was entered incorrectly in the system defaults. Log onto MET/TEAM as an administrator and go to Configure -> System Defaults. Find the "Alerts.Smtp.Host" system default and make sure you entered the correct name.
Unable to connect to the remote server
Error:
Unable to send the email. Aborting...
Exception: Failure sending mail.
Stack: at System.Net.Mail.SmtpClient.Send(MailMessage message)
at MetTeam.AlertEngine.Helpers.Emailer.SendEmail(String to, String from, String title, String message, String host, Int32 port, String username, String password, Boolean useSsl, List`1 attachments, String globalCC, String globalBCC)
Inner Exception: Unable to connect to the remote server
Stack: at System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object owner, Boolean async, IPAddress& address, Socket& abortSocket, Socket& abortSocket6)
at System.Net.PooledStream.Activate(Object owningObject, Boolean async, GeneralAsyncDelegate asyncCallback)
at System.Net.PooledStream.Activate(Object owningObject, GeneralAsyncDelegate asyncCallback)
at System.Net.ConnectionPool.GetConnection(Object owningObject, GeneralAsyncDelegate asyncCallback, Int32 creationTimeout)
at System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint)
at System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint)
at System.Net.Mail.SmtpClient.GetConnection()
at System.Net.Mail.SmtpClient.Send(MailMessage message)
Solution: This error means one of two things: either the port number was entered incorrectly, or the provided user credentials is wrong. Log onto MET/TEAM as an administrator and go to Configure -> System Defaults. The settings you want to verify are "Alerts.Smtp.Port", "Alerts.Smtp.User", and "Alerts.Smtp.Password". Note that most internal servers use a port number of 25 and utilize anonymous authentication (meaning no username and password are necessary and the respective defaults should be inactivated).
Server does not support secure connections
Error:
Unable to send the email. Aborting...
Exception: Server does not support secure connections.
Stack: at System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint)
at System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint)
at System.Net.Mail.SmtpClient.GetConnection()
at System.Net.Mail.SmtpClient.Send(MailMessage message)
at MetTeam.AlertEngine.Helpers.Emailer.SendEmail(String to, String from, String title, String message, String host, Int32 port, String username, String password, Boolean useSsl, List`1 attachments, String globalCC, String globalBCC)
Solution: The SSL system default should be inactivated. Log onto MET/TEAM as an administrator and go to Configure -> System Defaults. Find the setting called "Alerts.Smtp.UseSSL" and inactivate the record.
Pending Alerts: 0
Issue:
Pending Alerts: 0
Solution: The alerting engine is connected to a MET/TEAM database, but has found that no emails are scheduled to be sent. Verify that the alert you set up was actually scheduled to send out an email at that time (keeping in mind that the setup of that screen operates on a 24 hour clock). If you have a QA MET/TEAM server, make sure the alerting engine is not pointing to that QA database.
Issue:
Exception: Failure sending mail.
Stack: at System.Net.Mail.SmtpClient.Send(MailMessage message)
at MetTeam.AlertEngine.Helpers.Emailer.SendEmail(String to, String from, String title, String message, String host, Int32 port, String username, String password, Boolean useSsl, String fromName, List`1 attachments, String globalCC, String globalBCC)
Inner Exception: Unable to read data from the transport connection: net_io_connectionclosed.
Solution: Port 465 may be blocked by a firewall because it is reserved for SSL. Try port 587 which uses TLS.