Adds MailKit (#69)
This commit is contained in:
parent
d6bba58b59
commit
e11d1f3ad9
5 changed files with 151 additions and 153 deletions
|
|
@ -1,8 +1,5 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Net.Mail;
|
||||
using Server.Accounting;
|
||||
using Server.Misc;
|
||||
using Server.Mobiles;
|
||||
using Server.Network;
|
||||
|
|
@ -49,7 +46,7 @@ namespace Server.Engines.Help
|
|||
m_Timer.Start();
|
||||
}
|
||||
|
||||
public Mobile Sender{ get; }
|
||||
public Mobile Sender { get; }
|
||||
|
||||
public Mobile Handler
|
||||
{
|
||||
|
|
@ -61,17 +58,17 @@ namespace Server.Engines.Help
|
|||
}
|
||||
}
|
||||
|
||||
public DateTime Sent{ get; }
|
||||
public DateTime Sent { get; }
|
||||
|
||||
public string Message{ get; }
|
||||
public string Message { get; }
|
||||
|
||||
public PageType Type{ get; }
|
||||
public PageType Type { get; }
|
||||
|
||||
public Point3D PageLocation{ get; }
|
||||
public Point3D PageLocation { get; }
|
||||
|
||||
public Map PageMap{ get; }
|
||||
public Map PageMap { get; }
|
||||
|
||||
public List<SpeechLogEntry> SpeechLog{ get; }
|
||||
public List<SpeechLogEntry> SpeechLog { get; }
|
||||
|
||||
public void Stop()
|
||||
{
|
||||
|
|
@ -118,7 +115,7 @@ namespace Server.Engines.Help
|
|||
private static Dictionary<Mobile, PageEntry> m_KeyedByHandler = new Dictionary<Mobile, PageEntry>();
|
||||
private static Dictionary<Mobile, PageEntry> m_KeyedBySender = new Dictionary<Mobile, PageEntry>();
|
||||
|
||||
public static List<PageEntry> List{ get; } = new List<PageEntry>();
|
||||
public static List<PageEntry> List { get; } = new List<PageEntry>();
|
||||
|
||||
public static void Initialize()
|
||||
{
|
||||
|
|
@ -207,6 +204,7 @@ namespace Server.Engines.Help
|
|||
Remove(GetEntry(sender));
|
||||
}
|
||||
|
||||
|
||||
public static void Enqueue(PageEntry entry)
|
||||
{
|
||||
List.Add(entry);
|
||||
|
|
@ -230,55 +228,9 @@ namespace Server.Engines.Help
|
|||
entry.Sender.SendMessage(
|
||||
"We are sorry, but no staff members are currently available to assist you. Your page will remain in the queue until one becomes available, or until you cancel it manually.");
|
||||
|
||||
if (Email.FromAddress != null && Email.SpeechLogPageAddresses != null && entry.SpeechLog != null)
|
||||
SendEmail(entry);
|
||||
if (Email.FROM_ADDRESS != null && Email.SPEECH_LOG_PAGE_ADDRESS != null && entry.SpeechLog != null)
|
||||
Email.SendQueueEmail(entry, GetPageTypeName(entry.Type));
|
||||
}
|
||||
|
||||
private static void SendEmail(PageEntry entry)
|
||||
{
|
||||
Mobile sender = entry.Sender;
|
||||
DateTime time = DateTime.UtcNow;
|
||||
|
||||
MailMessage mail = new MailMessage(Email.FromAddress, Email.SpeechLogPageAddresses)
|
||||
{
|
||||
Subject = "RunUO Speech Log Page Forwarding"
|
||||
};
|
||||
|
||||
using (StringWriter writer = new StringWriter())
|
||||
{
|
||||
writer.WriteLine("RunUO Speech Log Page - {0}", GetPageTypeName(entry.Type));
|
||||
writer.WriteLine();
|
||||
|
||||
writer.WriteLine("From: '{0}', Account: '{1}'", sender.RawName,
|
||||
sender.Account is Account ? sender.Account.Username : "???");
|
||||
writer.WriteLine("Location: {0} [{1}]", sender.Location, sender.Map);
|
||||
writer.WriteLine("Sent on: {0}/{1:00}/{2:00} {3}:{4:00}:{5:00}", time.Year, time.Month, time.Day, time.Hour,
|
||||
time.Minute, time.Second);
|
||||
writer.WriteLine();
|
||||
|
||||
writer.WriteLine("Message:");
|
||||
writer.WriteLine("'{0}'", entry.Message);
|
||||
writer.WriteLine();
|
||||
|
||||
writer.WriteLine("Speech Log");
|
||||
writer.WriteLine("==========");
|
||||
|
||||
foreach (SpeechLogEntry logEntry in entry.SpeechLog)
|
||||
{
|
||||
Mobile from = logEntry.From;
|
||||
string fromName = from.RawName;
|
||||
string fromAccount = from.Account is Account ? from.Account.Username : "???";
|
||||
DateTime created = logEntry.Created;
|
||||
string speech = logEntry.Speech;
|
||||
|
||||
writer.WriteLine("{0}:{1:00}:{2:00} - {3} ({4}): '{5}'", created.Hour, created.Minute, created.Second,
|
||||
fromName, fromAccount, speech);
|
||||
}
|
||||
|
||||
mail.Body = writer.ToString();
|
||||
}
|
||||
|
||||
Email.AsyncSend(mail);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue