#W# Initial Commit: Avatars Conquest
This commit is contained in:
commit
5df497787a
7510 changed files with 416048 additions and 0 deletions
78
Scripts/Misc/Email.cs
Normal file
78
Scripts/Misc/Email.cs
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
using System;
|
||||
using System.Net.Mail;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading;
|
||||
using Server;
|
||||
|
||||
namespace Server.Misc
|
||||
{
|
||||
public class Email
|
||||
{
|
||||
/* In order to support emailing, fill in EmailServer:
|
||||
* Example:
|
||||
* public static readonly string EmailServer = "mail.domain.com";
|
||||
*
|
||||
* If you want to add crash reporting emailing, fill in CrashAddresses:
|
||||
* Example:
|
||||
* public static readonly string CrashAddresses = "first@email.here;second@email.here;third@email.here";
|
||||
*
|
||||
* If you want to add speech log page emailing, fill in SpeechLogPageAddresses:
|
||||
* Example:
|
||||
* public static readonly string SpeechLogPageAddresses = "first@email.here;second@email.here;third@email.here";
|
||||
*/
|
||||
|
||||
public static readonly string EmailServer = null;
|
||||
|
||||
public static readonly string CrashAddresses = null;
|
||||
public static readonly string SpeechLogPageAddresses = null;
|
||||
|
||||
private static Regex _pattern = new Regex( @"^[a-z0-9.+_-]+@([a-z0-9-]+.)+[a-z]+$", RegexOptions.IgnoreCase );
|
||||
|
||||
public static bool IsValid( string address )
|
||||
{
|
||||
if ( address == null || address.Length > 320 )
|
||||
return false;
|
||||
|
||||
return _pattern.IsMatch( address );
|
||||
}
|
||||
|
||||
private static SmtpClient _Client;
|
||||
|
||||
public static void Configure()
|
||||
{
|
||||
if ( EmailServer != null )
|
||||
_Client = new SmtpClient( EmailServer );
|
||||
}
|
||||
|
||||
public static bool Send( MailMessage message )
|
||||
{
|
||||
try
|
||||
{
|
||||
lock ( _Client ) {
|
||||
_Client.Send( message );
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void AsyncSend( MailMessage message )
|
||||
{
|
||||
ThreadPool.QueueUserWorkItem( new WaitCallback( SendCallback ), message );
|
||||
}
|
||||
|
||||
private static void SendCallback( object state )
|
||||
{
|
||||
MailMessage message = (MailMessage) state;
|
||||
|
||||
if ( Send( message ) )
|
||||
Console.WriteLine( "Sent e-mail '{0}' to '{1}'.", message.Subject, message.To );
|
||||
else
|
||||
Console.WriteLine( "Failure sending e-mail '{0}' to '{1}'.", message.Subject, message.To );
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue