For scheduling mail i am using JobcashAction. It's simple
Open your Global.asax.cs file just use the following code.
Now just use the code in you controller as you define in JobcashAction path in Global
I use AddJobCache ActionResult it in my home controller.
Enjoy...
Open your Global.asax.cs file just use the following code.
public class MvcApplication : System.Web.HttpApplication
{
// Define Path Of the Job
private const string JobCashAction = "http://localhost:38416/Home/AddJobCache";
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterAuth();
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
if (HttpContext.Current.Cache["jobkey"] == null)
{
HttpContext.Current.Cache.Add("jobkey",
"jobvalue", null,
DateTime.MaxValue,
TimeSpan.FromSeconds(15), // set the time interval
CacheItemPriority.Default, JobCacheRemoved);
}
}
private static void JobCacheRemoved(string key, object value, CacheItemRemovedReason reason)
{
var client = new WebClient();
client.DownloadData(JobCashAction);
ScheduleJob();
}
private static void ScheduleJob()
{
// ExecuteAnyMethod
}
}
Now just use the code in you controller as you define in JobcashAction path in Global
"http://localhost:38416/Home/AddJobCache";
I use AddJobCache ActionResult it in my home controller.
public ActionResult AddJobCache()
{
// Report data
List<Student> studentList = new List<Student>();
studentList = GetStudentInfo(); // Get the StudentList Data
ReportDocument details = new ReportDocument();
details.Load(Server.MapPath("../Report/rptStudent.rpt")); // Crystal report path
details.SetDataSource(studentList); // Set the StudentList Data as report source
details.ExportToDisk(ExportFormatType.PortableDocFormat, "D:\\ff.pdf"); // save file as pdf
// Mail Send
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
mail.From = new MailAddress("atiour.islam@gmail.com"); // Sender Email Address
mail.To.Add("atik.kotha@gmail.com"); // Send Mail to
mail.Subject = "Test"; // Email Subject
mail.Body = "Hi"; // Email Body
System.Net.Mail.Attachment attachment;
attachment = new System.Net.Mail.Attachment("D:\\ff.pdf");// Get Attach file path
mail.Attachments.Add(attachment);
SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential("atiour.islam@gmail.com", "yourpassword");// Sender Email & Password
SmtpServer.EnableSsl = true;
SmtpServer.Timeout = 60000;
SmtpServer.Send(mail);
return null;
}
Enjoy...
Comments
Post a Comment