日期:2014-05-18 浏览次数:21040 次
//用vs2005,只需要加一个com组件,名称是:Microsoft outlook 11.0 object library
using System.Net.Mail;
/// <summary>
/// 发送邮件的方法
/// </summary>
/// <param name="strSender">发件人邮箱地址</param>
/// <param name="strPass">发件人邮箱密码</param>
/// <param name="Toer">收件人邮箱地址</param>
public void MailMessage(string strSender, string strPass, string Toer)
{
try
{ MailAddress from = new MailAddress(strSender, "发件人的名称");//发件人邮箱地址
MailAddress to = new MailAddress(Toer, "收件人的名称");//收件人邮箱地址
MailMessage mailMsg = new MailMessage(from, to);
mailMsg.Body = "我成功了! "; //所要发送的文本
mailMsg.Subject = "你好";//邮箱标题
SmtpClient client = new SmtpClient("smtp.163.com");//smtp服务器地址
// Include credentials if the server requires them.
client.Credentials = CredentialCache.DefaultNetworkCredentials;
client.Send(mailMsg);
MessageBox.Show("OK");
} catch (System.Exception ex)
{ MessageBox.Show("Error!"); }
}
------解决方案--------------------
//判断是否连通邮件服务商
public static bool SmtpProviderStatus(string pingaddress)
{
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
string pingrst;
p.Start();
p.StandardInput.WriteLine("ping -n 1 " + pingaddress);
p.StandardInput.WriteLine("exit");
string strRst = p.StandardOutput.ReadToEnd();
if (strRst.IndexOf("(0% loss)") != -1)
pingrst = "连接";
else if (strRst.IndexOf("Destination host unreachable.") != -1)
pingrst = "无法到达目的主机";
else if (strRst.IndexOf("Request timed out.") != -1)
pingrst = "超时";
else if (strRst.IndexOf("Unknown host") != -1)
pingrst = "无法解析主机";
else
pingrst = strRst;
if (pingrst != "连接")
{
return false;
}
else
{
return true;
}
}
//判断是否已经开启端口
public static bool Smtpport(string websiteaddress)
{
bool openstatus = false;
System.Net.IPAddress ip = System.Net.IPAddress.Parse(websiteaddress);
System.Net.IPEndPoint point = new System.Net.IPEndPoint(ip, 25);
try
{
System.Net.Sockets.TcpClient tc = new System.Net.Sockets.TcpClient();
tc.Connect(ip, 25);
openstatus = true;
}
catch
{
openstatus = false;
}
return openstatus;
}
//返回电子邮件地址
public static string[] returnmailaddress(string name)
{
SqlParameter[] p ={
new SqlParameter("name",name)
};
DataTable dt = Oacommand.ExecuteTable("P_returnmailaddress", p);
string[] s = new string[dt.Rows.Count];
for (int i = 0; i < dt.Rows.Count; i++)
{
s[i] = dt.Rows[i][0].ToString();
}
return s;
}
//发送电子邮件
public static void Sendmail(string ReceiveName, string Topic, string Content)
{
if (ConfigurationManager.AppSettings["AllowsendEmail"].ToString() == "yes")
{
string smtpaddress = Configura