· 7 years ago · Nov 12, 2018, 05:44 AM
1$Username = "gmailusernamehere"; #don't include @gmail.com
2$Password = "gmailpasswordhere";
3
4function Send-ToEmail([string]$email){
5
6 $message = new-object Net.Mail.MailMessage;
7 $message.From = "fromaddresshere";
8 $message.To.Add($email);
9 $message.Subject = "FO76 Online!";
10 $message.Body = "Fallout 76 servers are live!";
11
12 $smtp = new-object Net.Mail.SmtpClient("smtp.gmail.com", "587");
13 $smtp.EnableSSL = $true;
14 $smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
15 $smtp.send($message);
16 }
17
18#check server status every 5 minutes
19while(1 -eq 1){
20 # scrape server status from API
21 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
22 $data = Invoke-WebRequest -Uri "https://api.bethesda.net/status/ext-server-status?product_id=8" | Select Content
23 if($data -CMatch "DOWN"){
24 #do nothing
25 }else{
26 Send-ToEmail -email "aperson@gmail.com";
27 Send-ToEmail -email "aphonenumber@vtext.com";
28 [Environment]::Exit(1)
29 }
30 Start-Sleep -Seconds 300
31}