A volte si può avere la necessità di fare delle elaborazioni che alla fine ne notifichino l'esito via e-mail. Questo programma può rappresentare un punto di partenza per sviluppare qualcosa di più appropriato.
using System;
using System.Web.Mail;
using System.IO;
using System.Text;
namespace caSendMail
{
/// <summary>
/// Summary description for Class1.
/// </summary>
class cmdMail
{
private string mTxtEmailTo; // Email address for user to send
private string mTxtEmailFrom;// Email address for user from
private string mTxtMailSubj;
private string mTxtMailBody;
private string mTxtServerName;
private static bool bArgs = false;
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args)
{
/// Header MainApplication
cmdMail Smtp = new cmdMail();
if (args != null)
{
if(args.Length == 0)
{
Console.WriteLine ("Console SMTP Mail Ver. 1.1");
Console.WriteLine ("--------------------------");
Console.Write("Smtp server : ");
Smtp.SmtpServer = Console.ReadLine();
Console.Write("Your Emailaddr : ");
Smtp.EmailFrom = Console.ReadLine();
Console.Write("Email To Send : ");
Smtp.EmailTo = Console.ReadLine();
Console.Write("Subject Mail : ");
Smtp.MailSubject = Console.ReadLine();
Console.Write("Body : ");
Smtp.MailBody = Console.ReadLine();
Console.WriteLine("Press any Key");
Console.Read();
}
bArgs = Smtp.getArgs(args);
if ((bArgs) || args.Length == 0)
{
if (Smtp.SendNow())
{
if (bArgs)
Console.WriteLine("End Session : Succesfully");
}
else
{
Console.WriteLine("End Session : Failed");
}
}
}
}
private bool getArgs(string sArgs)
{
return getArgs(sArgs.Split(new char[] {' '}));
}
private bool getArgs(string[] sArgs)
{
bool bEsito = false;
StringBuilder sbMailBody = new StringBuilder();
StringBuilder sbSubject = new StringBuilder();
try
{
string tmpPar = "";
for (int i = 0; i < sArgs.Length; i++)
{
switch(sArgs[i])
{
case "-s":
tmpPar = "s";
break;
case "-m":
tmpPar = "m";
break;
case "-d":
tmpPar = "d";
break;
case "-j":
tmpPar = "j";
break;
case "-b":
tmpPar = "b";
break;
case "-h":
Console.Write (writeHelp());
bEsito = false;
break;
default:
if (i < sArgs.Length)
{
switch (tmpPar)
{
case "s":
SmtpServer = sArgs[i];
break;
case "m":
EmailFrom = sArgs[i];
break;
case "d":
EmailTo = sArgs[i];
break;
case "j":
sbSubject.Append(" " + sArgs[i]);
break;
case "b":
sbMailBody.Append(" " + sArgs[i]);
break;
}
}
break;
}
}
MailBody = sbMailBody.ToString().Trim();
MailSubject = sbSubject.ToString().Trim();
bEsito = true;
}
catch(Exception e)
{
Console.Write(e);
}
return bEsito;
}
public string writeHelp()
{
string s = "The syntax of this command is:\n";
s += System.Reflection.Assembly.GetExecutingAssembly().GetName() + "\n";
s += "[-s SMPT Server]\n";
s += "[-m Mail sender]\n";
s += "[-d Email To]\n";
s += "[-j Subject]\n";
s += "[-b Body]\n";
return s;
}
public cmdMail()
{
mTxtEmailFrom = "";
mTxtEmailTo = "";
}
public bool SendNow()
{
try
{
if (bArgs)
{
Console.WriteLine();
Console.WriteLine("Connecting to : {0}" , mTxtServerName);
Console.WriteLine("Sending mail to : {0}" , mTxtEmailTo);
}
SmtpMail.Send (mTxtEmailFrom,mTxtEmailTo,mTxtMailSubj,mTxtMailBody);
return true;
}
catch (Exception e)
{
Console.WriteLine("Error Mail Sending : {0}" , e.StackTrace );
return false;
}
}
public string SmtpServer
{
set
{
mTxtServerName = value;
SmtpMail.SmtpServer = value;
}
get
{
return mTxtServerName;
}
}
public string EmailFrom
{
set
{
mTxtEmailFrom = value;
}
get
{
return mTxtEmailFrom;
}
}
public string EmailTo
{
set
{
mTxtEmailTo = value;
}
get
{
return mTxtEmailTo;
}
}
public string MailBody
{
set
{
mTxtMailBody = value;
}
get
{
return mTxtMailBody;
}
}
public string MailSubject
{
set
{
mTxtMailSubj = value;
}
get
{
return mTxtMailSubj;
}
}
}
}