using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Mail;
using System.Text;
namespace mailDaemon
{
class MailSender
{
private const string SERVER_IP = "61.181.255.80";
private const string SENDER_EMAIL = "mailist@gaosulu.com";
private const string USERNAME = "mailist";
private const string PASSWORD = "bu2kwh1at";
private const string SUBJECT = "高速路商机速递";
string _server;
string _senderEmail;
string _username;
string _password;
static bool mailSent = false;
public MailSender(string server, string senderEmail, string username, string password)
{
_server = server;
_senderEmail = senderEmail;
_username = username;
_password = password;
}
public MailSender():this(SERVER_IP, SENDER_EMAIL, USERNAME, PASSWORD)
{
}
public void SendMail(string email, string content)
{
MailMessage msg = new MailMessage(_senderEmail, email, SUBJECT, content);
msg.BodyEncoding = Encoding.UTF8;
msg.Priority = MailPriority.High;
msg.IsBodyHtml = true;
SmtpClient client = new SmtpClient(_server);
NetworkCredential credential = new NetworkCredential(_username, _password);
client.UseDefaultCredentials = false;
client.Credentials = credential;
client.SendCompleted += new SendCompletedEventHandler(client_SendCompleted);
client.SendAsync(msg, "Message Sent.");
Console.WriteLine(email + "邮件发送中,按C取消发送");
//string answer = Console.ReadLine();
//if (answer.StartsWith("c") && mailSent == false)
//{
// client.SendAsyncCancel();
//}
Console.WriteLine(email + "处理完成");
}
void client_SendCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
String token = (string)e.UserState;
if (e.Cancelled)
{
Console.WriteLine("[{0}] Send canceled.", token);
}
if (e.Error != null)
{
Console.WriteLine("[{0}] {1}", token, e.Error.ToString());
}
else
{
Console.WriteLine("Message sent.");
}
mailSent = true;
}
}
}