!!!!bs邮件发送 很着急,急求邮件发送的实例,在网上搜的,测试都不正确求一个正确的例子 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 C#Winform邮件发送类邮件发送类:using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security;using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Net;/// <summary> /// sendmail 的摘要说明 /// </summary> namespace donny { public struct EmailParms { /// <summary> /// 收件人邮箱地址 /// </summary> public string ToEmailAddress;/// <summary> /// 发件人邮箱地址 /// </summary> public string FromEmailAddress;/// <summary> /// 发件人邮箱密码 /// </summary> public string FromEmailPassword;/// <summary> /// 邮件主题 /// </summary> public string EmailSubject;/// <summary> /// 邮件内容 /// </summary> public string EmailBody;/// <summary> /// 发件人姓名 /// </summary> public string EmailPersonName;/// <summary> /// SMTP主机名称 /// 例:Gmail为smtp.gmail.com /// </summary> public string EmailHostName;/// <summary> /// 邮件优先级:high(高)、low(低)、normal(正常) /// 默认为high /// </summary> public string EmailPriority;/// <summary> /// 邮箱端口号 /// 例:Gmail为587,一般为25 /// </summary> public int EmailPort;/// <summary> /// 邮件是否加密:true(加密),false(不加密) /// 默认为true /// </summary> public bool isEnableSsl;/// <summary> /// 邮件内容是否为HTML格式(true加密,false不加密),默认为false /// </summary> public bool isBodyHtml;/// <summary> /// 邮件编码类型:UTF7、UTF8(推荐)、UTF32、ASCII和Default. /// </summary> public string EncodingType; } public class sendmail { public sendmail() { // // TODO: 在此处添加构造函数逻辑 // } public static bool SendingEmail(EmailParms Email) { System.Net.Mail.MailMessage mms = new System.Net.Mail.MailMessage();System.Text.Encoding emaiEncodingType; //设置邮件编码类型 switch (Email.EncodingType) { case "UTF7": emaiEncodingType = System.Text.Encoding.UTF7; break; case "UTF8": emaiEncodingType = System.Text.Encoding.UTF8; break; case "UTF32": emaiEncodingType = System.Text.Encoding.UTF32; break; case "ASCII": emaiEncodingType = System.Text.Encoding.ASCII; break; default: emaiEncodingType = System.Text.Encoding.Default; break; }mms.To.Add(Email.ToEmailAddress); mms.From = new System.Net.Mail.MailAddress(Email.FromEmailAddress, Email.EmailPersonName, emaiEncodingType); mms.Subject = Email.EmailSubject; mms.SubjectEncoding = emaiEncodingType; mms.Body = Email.EmailBody; mms.BodyEncoding = emaiEncodingType;//设置邮件是否为HTML格式 if (Email.isBodyHtml == false) { mms.IsBodyHtml = Email.isBodyHtml; } else { mms.IsBodyHtml = true; }//设置邮件优级先级 switch (Email.EmailPriority) { case "normal": mms.Priority = System.Net.Mail.MailPriority.Normal; break; case "low": mms.Priority = System.Net.Mail.MailPriority.Low; break; default: mms.Priority = System.Net.Mail.MailPriority.High; break; }System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(); client.Credentials = new System.Net.NetworkCredential(Email.FromEmailAddress, Email.FromEmailPassword);client.Port = Email.EmailPort; client.Host = Email.EmailHostName; client.EnableSsl = Email.isEnableSsl;try { client.Send(mms); return true; } catch (Exception ex) { return false; } } } }使用方法:EmailParms mailstr = new EmailParms(); mailstr.EmailBody = "aaaa"; mailstr.EmailHostName = "smtp.XXXX.com"; mailstr.EmailPersonName = "admin"; mailstr.EmailPort = 25; mailstr.EmailPriority = "high"; mailstr.EmailSubject = "主题"; mailstr.EncodingType = "UTF8"; mailstr.FromEmailAddress = "[email protected]"; mailstr.FromEmailPassword = "1111111"; mailstr.isBodyHtml = false; mailstr.isEnableSsl = false; mailstr.ToEmailAddress = "[email protected]"; sendmail.SendingEmail(mailstr);使用时候注意:有时候防火墙会拦截邮件。需要在防火墙里设置端口开放,用那个就开发那个。不要频繁大范围的发送邮件,负责机房很快就会把你服务器的相关端口给封闭的。写个读邮件的给你看看,至于读数量,研究下就出来了protected void ReadEmail_Click(object sender, EventArgs e) {try{TcpClient tcpclient = new TcpClient(); // create an instance of TcpClienttcpclient.Connect("pop.gmail.com", 995); // HOST NAME POP SERVER and gmail uses port number 995 for POP System.Net.Security.SslStream sslstream = new SslStream(tcpclient.GetStream()); // This is Secure Stream // opened the connection between client and POP Serversslstream.AuthenticateAsClient("pop.gmail.com"); // authenticate as client //bool flag = sslstream.IsAuthenticated; // check flag System.IO.StreamWriter sw = new StreamWriter(sslstream); // Asssigned the writer to streamSystem.IO.StreamReader reader = new StreamReader(sslstream); // Assigned reader to streamsw.WriteLine("USER [email protected]"); // refer POP rfc command, there very few around 6-9 commandsw.Flush(); // sent to serversw.WriteLine("PASS your_gmail_password"); sw.Flush();sw.WriteLine("RETR 1"); // this will retrive your first email sw.Flush();sw.WriteLine("Quit "); // close the connectionsw.Flush();string str = string.Empty; string strTemp = string.Empty;while ((strTemp = reader.ReadLine()) != null) {if (strTemp == ".") // find the . character in line{break; }if (strTemp.IndexOf("-ERR") != -1) {break; }str += strTemp;}Response.Write(str);Response.Write("<BR>" + "Congratulation.. ....!!! You read your first gmail email "); }catch (Exception ex) {Response.Write(ex.Message);}} .net 得到生成控件的HTML方法 获取文件的虚拟路径 关于打印命令 Print 的问题 label标签的一个小问题 高分求教,关于页面刷新DataGrid数据保存问题 急!(在线等待) 问一下装了vs2003后还可以装vs2002吗? 关于Win XP +SP2中IIS连接数的问题. 100分求汉语词组大全啊 送500分 我的程序点击提交后出错!!!!!!!!!!!!!!!!!!!!!! 求助实现分页功能,出现错误! IP访问不了IIS上的站点
邮件发送类:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net;
/// <summary>
/// sendmail 的摘要说明
/// </summary>
namespace donny
{
public struct EmailParms
{
/// <summary>
/// 收件人邮箱地址
/// </summary>
public string ToEmailAddress;
/// <summary>
/// 发件人邮箱地址
/// </summary>
public string FromEmailAddress;
/// <summary>
/// 发件人邮箱密码
/// </summary>
public string FromEmailPassword;
/// <summary>
/// 邮件主题
/// </summary>
public string EmailSubject;
/// <summary>
/// 邮件内容
/// </summary>
public string EmailBody;
/// <summary>
/// 发件人姓名
/// </summary>
public string EmailPersonName;
/// <summary>
/// SMTP主机名称
/// 例:Gmail为smtp.gmail.com
/// </summary>
public string EmailHostName;
/// <summary>
/// 邮件优先级:high(高)、low(低)、normal(正常)
/// 默认为high
/// </summary>
public string EmailPriority;
/// <summary>
/// 邮箱端口号
/// 例:Gmail为587,一般为25
/// </summary>
public int EmailPort;
/// <summary>
/// 邮件是否加密:true(加密),false(不加密)
/// 默认为true
/// </summary>
public bool isEnableSsl;
/// <summary>
/// 邮件内容是否为HTML格式(true加密,false不加密),默认为false
/// </summary>
public bool isBodyHtml;
/// <summary>
/// 邮件编码类型:UTF7、UTF8(推荐)、UTF32、ASCII和Default.
/// </summary>
public string EncodingType;
}
public class sendmail
{
public sendmail()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public static bool SendingEmail(EmailParms Email)
{ System.Net.Mail.MailMessage mms = new System.Net.Mail.MailMessage();
System.Text.Encoding emaiEncodingType;
//设置邮件编码类型
switch (Email.EncodingType)
{
case "UTF7":
emaiEncodingType = System.Text.Encoding.UTF7;
break;
case "UTF8":
emaiEncodingType = System.Text.Encoding.UTF8;
break;
case "UTF32":
emaiEncodingType = System.Text.Encoding.UTF32;
break;
case "ASCII":
emaiEncodingType = System.Text.Encoding.ASCII;
break;
default:
emaiEncodingType = System.Text.Encoding.Default;
break;
}
mms.To.Add(Email.ToEmailAddress);
mms.From = new System.Net.Mail.MailAddress(Email.FromEmailAddress, Email.EmailPersonName, emaiEncodingType);
mms.Subject = Email.EmailSubject;
mms.SubjectEncoding = emaiEncodingType;
mms.Body = Email.EmailBody;
mms.BodyEncoding = emaiEncodingType;
//设置邮件是否为HTML格式
if (Email.isBodyHtml == false)
{
mms.IsBodyHtml = Email.isBodyHtml;
}
else
{
mms.IsBodyHtml = true;
}
//设置邮件优级先级
switch (Email.EmailPriority)
{
case "normal":
mms.Priority = System.Net.Mail.MailPriority.Normal;
break;
case "low":
mms.Priority = System.Net.Mail.MailPriority.Low;
break;
default:
mms.Priority = System.Net.Mail.MailPriority.High;
break;
}
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
client.Credentials = new System.Net.NetworkCredential(Email.FromEmailAddress, Email.FromEmailPassword);
client.Port = Email.EmailPort;
client.Host = Email.EmailHostName;
client.EnableSsl = Email.isEnableSsl;
try
{
client.Send(mms);
return true;
}
catch (Exception ex)
{
return false;
}
}
}
}
使用方法:EmailParms mailstr = new EmailParms();
mailstr.EmailBody = "aaaa";
mailstr.EmailHostName = "smtp.XXXX.com";
mailstr.EmailPersonName = "admin";
mailstr.EmailPort = 25;
mailstr.EmailPriority = "high";
mailstr.EmailSubject = "主题";
mailstr.EncodingType = "UTF8";
mailstr.FromEmailAddress = "[email protected]";
mailstr.FromEmailPassword = "1111111";
mailstr.isBodyHtml = false;
mailstr.isEnableSsl = false;
mailstr.ToEmailAddress = "[email protected]";
sendmail.SendingEmail(mailstr);
使用时候注意:
有时候防火墙会拦截邮件。需要在防火墙里设置端口开放,用那个就开发那个。不要频繁大范围的发送邮件,负责机房很快就会把你服务器的相关端口给封闭的。
写个读邮件的给你看看,至于读数量,研究下就出来了
protected void ReadEmail_Click(object sender, EventArgs e)
{try{TcpClient tcpclient = new TcpClient(); // create an instance of TcpClienttcpclient.Connect("pop.gmail.com", 995); // HOST NAME POP SERVER and gmail uses port number 995 for POP System.Net.Security.SslStream sslstream = new SslStream(tcpclient.GetStream()); // This is Secure Stream // opened the connection between client and POP Serversslstream.AuthenticateAsClient("pop.gmail.com"); // authenticate as client //bool flag = sslstream.IsAuthenticated; // check flag System.IO.StreamWriter sw = new StreamWriter(sslstream); // Asssigned the writer to streamSystem.IO.StreamReader reader = new StreamReader(sslstream); // Assigned reader to streamsw.WriteLine("USER [email protected]"); // refer POP rfc command, there very few around 6-9 commandsw.Flush(); // sent to serversw.WriteLine("PASS your_gmail_password");
sw.Flush();sw.WriteLine("RETR 1"); // this will retrive your first email sw.Flush();sw.WriteLine("Quit "); // close the connectionsw.Flush();string str = string.Empty;
string strTemp = string.Empty;while ((strTemp = reader.ReadLine()) != null)
{if (strTemp == ".") // find the . character in line{break;
}if (strTemp.IndexOf("-ERR") != -1)
{break;
}str += strTemp;}Response.Write(str);Response.Write("<BR>" + "Congratulation.. ....!!! You read your first gmail email ");
}catch (Exception ex)
{Response.Write(ex.Message);}}