if (getMailServer() == true)
{
WriteStream("DATA");
WriteStream("Date: " + DateTime.Now);//时间
WriteStream("From: " + fromname + "<" + from + ">");//发件人
WriteStream("Subject: " + subject);//主题
WriteStream("To:" + to);//收件人 //邮件格式
WriteStream("Content-Type: multipart/mixed; boundary=\"unique-boundary-1\"");
WriteStream("Reply-To:" + this.from);//回复地址
WriteStream("X-Priority:" + priority);//优先级
WriteStream("MIME-Version:1.0");//MIME版本 //数据ID,随意
WriteStream("Message-Id: " + DateTime.Now.ToFileTime() + "@security.com");
WriteStream("Content-Transfer-Encoding:" + this.encode);//内容编码
WriteStream("X-Mailer:DS Mail Sender V1.0");//邮件发送者
WriteStream("");
WriteStream(AuthStream("This is a multi-part message in MIME format."));
WriteStream("");
WriteStream("--unique-boundary-1"); //在此处定义第二个分隔符
WriteStream("Content-Type: multipart/alternative;Boundary=\"unique-boundary-2\"");
WriteStream(""); //文本信息
WriteStream("--unique-boundary-2");
WriteStream("Content-Type: text/plain;charset=" + this.charset);
WriteStream("Content-Transfer-Encoding:" + this.encode);
WriteStream("");
WriteStream(body);
WriteStream("");//一个部分写完之后就写如空信息,分段 WriteStream("--unique-boundary-1--");
if (!OperaStream(".", "250"))//最后写完了,输入“.”
{
this.Close(); //关闭连接
}
MessageBox.Show("发送成功!");这个是我发邮件的格式,下面是发送给服务器
private void WriteStream(string strCmd)
{
try
{
Stream TcpStream;//定义操作对象
strCmd = strCmd + "\r\n"; //加入换行符
TcpStream = this.GetStream();//获取数据流
//将命令行转化为byte[]
byte[] bWrite = Encoding.GetEncoding("GB2312").GetBytes(strCmd.ToCharArray()); //由于每次写入的数据大小是有限制的,那么我们将每次写入的数据长度定在75个字节,一旦命令长度超过了75,就分步写入。 int start = 0;
int length = bWrite.Length;
int page = 0;
int size = 75;
int count = size;
if (length > 75)
{
//数据分页
if ((length / size) * size < length)
page = length / size + 1;
else
page = length / size; for (int i = 0; i < page; i++)//根据页数循环写入
{
start = i * size;
if (i == page - 1)
count = length - (i * size);
TcpStream.Write(bWrite, start, count);//将数据写入到服务器上 } }
else
TcpStream.Write(bWrite, 0, bWrite.Length);
}
catch (Exception ee)
{
MessageBox.Show(ee.ToString());
}
不知道为什么,里面不报错,但是邮件没有发送出去,求救各位高手了!!!
每分了,我去攒分,解决了绝对加分
{
WriteStream("DATA");
WriteStream("Date: " + DateTime.Now);//时间
WriteStream("From: " + fromname + "<" + from + ">");//发件人
WriteStream("Subject: " + subject);//主题
WriteStream("To:" + to);//收件人 //邮件格式
WriteStream("Content-Type: multipart/mixed; boundary=\"unique-boundary-1\"");
WriteStream("Reply-To:" + this.from);//回复地址
WriteStream("X-Priority:" + priority);//优先级
WriteStream("MIME-Version:1.0");//MIME版本 //数据ID,随意
WriteStream("Message-Id: " + DateTime.Now.ToFileTime() + "@security.com");
WriteStream("Content-Transfer-Encoding:" + this.encode);//内容编码
WriteStream("X-Mailer:DS Mail Sender V1.0");//邮件发送者
WriteStream("");
WriteStream(AuthStream("This is a multi-part message in MIME format."));
WriteStream("");
WriteStream("--unique-boundary-1"); //在此处定义第二个分隔符
WriteStream("Content-Type: multipart/alternative;Boundary=\"unique-boundary-2\"");
WriteStream(""); //文本信息
WriteStream("--unique-boundary-2");
WriteStream("Content-Type: text/plain;charset=" + this.charset);
WriteStream("Content-Transfer-Encoding:" + this.encode);
WriteStream("");
WriteStream(body);
WriteStream("");//一个部分写完之后就写如空信息,分段 WriteStream("--unique-boundary-1--");
if (!OperaStream(".", "250"))//最后写完了,输入“.”
{
this.Close(); //关闭连接
}
MessageBox.Show("发送成功!");这个是我发邮件的格式,下面是发送给服务器
private void WriteStream(string strCmd)
{
try
{
Stream TcpStream;//定义操作对象
strCmd = strCmd + "\r\n"; //加入换行符
TcpStream = this.GetStream();//获取数据流
//将命令行转化为byte[]
byte[] bWrite = Encoding.GetEncoding("GB2312").GetBytes(strCmd.ToCharArray()); //由于每次写入的数据大小是有限制的,那么我们将每次写入的数据长度定在75个字节,一旦命令长度超过了75,就分步写入。 int start = 0;
int length = bWrite.Length;
int page = 0;
int size = 75;
int count = size;
if (length > 75)
{
//数据分页
if ((length / size) * size < length)
page = length / size + 1;
else
page = length / size; for (int i = 0; i < page; i++)//根据页数循环写入
{
start = i * size;
if (i == page - 1)
count = length - (i * size);
TcpStream.Write(bWrite, start, count);//将数据写入到服务器上 } }
else
TcpStream.Write(bWrite, 0, bWrite.Length);
}
catch (Exception ee)
{
MessageBox.Show(ee.ToString());
}
不知道为什么,里面不报错,但是邮件没有发送出去,求救各位高手了!!!
每分了,我去攒分,解决了绝对加分
解决方案 »
- pinvoke中的回调函数无法改变窗体控件值?
- 如何配置 TFS2008 远程访问
- winform datagridview 修改语句
- 怎么读取exe程序内stringGraid内制定行列的内容
- 大家给点意见,文件复制中进度条processBar的使用
- 100分,怎么写C#的COM+包含一个事件,以及在VC6里面响应
- 连接access的问题。
- VS2008 C#.net中如何封装flash播放器(制作flash播放器)
- 如何开发一个继承datatable,可序列化的组件?
- WebService的问题,用C#可以实现传出参数(类型为普通类型,不是对象类型)。
- [C#] 怎么去更改Windows服务的启动类型?
- 实例化 C#
没有到catch,一直能运行到最后,但是邮件就是发不出去
这个看不出哪里错了。。又没走catch...
#region
public static void Sends(string email)
{
string formto = "发件箱地址";
string to = email; //接收邮箱
string content = "";
string body = "";
string name = "发件箱";
string upass = "密码";
string smtp = "smtp地址";
SmtpClient _smtpClient = new SmtpClient();
_smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
_smtpClient.Host = smtp; //指定SMTP服务器
_smtpClient.Credentials = new System.Net.NetworkCredential(name, upass);//用户名和密码
MailMessage _mailMessage = new MailMessage();
//发件人,发件人名
_mailMessage.From = new MailAddress(formto, "别名");
//收件人
_mailMessage.To.Add(to);
_mailMessage.SubjectEncoding = System.Text.Encoding.GetEncoding("gb2312");
_mailMessage.Subject = content;//主题 _mailMessage.Body = body;//内容
_mailMessage.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");//正文编码
_mailMessage.IsBodyHtml = true;//设置为HTML格式
_mailMessage.Priority = MailPriority.High;//优先级
try
{
_smtpClient.Send(_mailMessage);
}
catch (Exception)
{
}
}
#endregion
端口什么的,
你使用outlook能发不?
using System.Web.Mail
如果是2.0以上
using System.Net.Mail;我在vs2003升级到vs2005的时候遇到过这种情况,结果也不报错,最后查出是2.0其实不支持以前的System.Web.Mail的发信方式