using System;
using System.ComponentModel;
using System.Net;
using System.Net.Mail;
using System.Workflow.ComponentModel;
namespace SendMailActivity
{
public partial class SendMailActivity: Activity
{
public SendMailActivity()
{
InitializeComponent();
}
#region Public workflow members
public static DependencyProperty FromProperty = DependencyProperty.Register("From", typeof(string), typeof(SendMailActivity));
[DescriptionAttribute("The email address of the sender")]
[CategoryAttribute("Parameters")]
[BrowsableAttribute(true)]
[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
public string From
{
get
{
return ((string)(base.GetValue(SendMailActivity.FromProperty)));
}
set
{
base.SetValue(SendMailActivity.FromProperty, value);
}
}
public static DependencyProperty ToProperty = DependencyProperty.Register("To", typeof(string), typeof(SendMailActivity));
[DescriptionAttribute("The email address of the receiver")]
[CategoryAttribute("Parameters")]
[BrowsableAttribute(true)]
[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
public string To
{
get
{
return ((string)(base.GetValue(SendMailActivity.ToProperty)));
}
set
{
base.SetValue(SendMailActivity.ToProperty, value);
}
}
public static DependencyProperty SubjectProperty = DependencyProperty.Register("Subject", typeof(string), typeof(SendMailActivity));
[DescriptionAttribute("Subject")]
[CategoryAttribute("Parameters")]
[BrowsableAttribute(true)]
[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
public string Subject
{
get
{
return ((string)(base.GetValue(SendMailActivity.SubjectProperty)));
}
set
{
base.SetValue(SendMailActivity.SubjectProperty, value);
}
}
public static DependencyProperty BodyProperty = DependencyProperty.Register("Body", typeof(string), typeof(SendMailActivity));
[DescriptionAttribute("Body")]
[CategoryAttribute("Parameters")]
[BrowsableAttribute(true)]
[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
public string Body
{
get
{
return ((string)(base.GetValue(SendMailActivity.BodyProperty)));
}
set
{
base.SetValue(SendMailActivity.BodyProperty, value);
}
}
public static DependencyProperty HostProperty = DependencyProperty.Register("Host", typeof(string), typeof(SendMailActivity));
[DescriptionAttribute("Host")]
[CategoryAttribute("Parameters")]
[BrowsableAttribute(true)]
[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
public string Host
{
get
{
return ((string)(base.GetValue(SendMailActivity.HostProperty)));
}
set
{
base.SetValue(SendMailActivity.HostProperty, value);
}
}
public static DependencyProperty LoginProperty = DependencyProperty.Register("Login", typeof(string), typeof(SendMailActivity));
[DescriptionAttribute("Login")]
[CategoryAttribute("Login Category")]
[BrowsableAttribute(true)]
[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
public string Login
{
get
{
return ((string)(base.GetValue(SendMailActivity.LoginProperty)));
}
set
{
base.SetValue(SendMailActivity.LoginProperty, value);
}
}
public static DependencyProperty PasswordProperty = DependencyProperty.Register("Password", typeof(string), typeof(SendMailActivity));
[DescriptionAttribute("Password")]
[CategoryAttribute("Password Category")]
[BrowsableAttribute(true)]
[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
public string Password
{
get
{
return ((string)(base.GetValue(SendMailActivity.PasswordProperty)));
}
set
{
base.SetValue(SendMailActivity.PasswordProperty, value);
}
}
public static DependencyProperty PortProperty = DependencyProperty.Register("Port", typeof(int), typeof(SendMailActivity));
[DescriptionAttribute("Port")]
[CategoryAttribute("Port Category")]
[BrowsableAttribute(true)]
[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
public int Port
{
get
{
return ((int)(base.GetValue(SendMailActivity.PortProperty)));
}
set
{
base.SetValue(SendMailActivity.PortProperty, value);
}
}
#endregion
protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
{
try
{
MailAddress toAddress = new MailAddress(To);
MailAddress fromAddress = new MailAddress(From);
MailAddressCollection addresses = new MailAddressCollection();
addresses.Add(toAddress);
MailMessage msg = new MailMessage(fromAddress, toAddress);
msg.Subject = Subject;
msg.Body = Body;
SmtpClient mail = new SmtpClient(Host);
mail.Port = Port; //587;
mail.Credentials = new NetworkCredential(Login, Password);
mail.EnableSsl = true;
mail.Send(msg);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return ActivityExecutionStatus.Closed;
}
}
}
// Gmail settings
// SMTP server: smtp.gmail.com
// Port: 587
No comments:
Post a Comment