如何用C#发邮件(注意,不是在web页面,windows应用程序收发邮件)

lyvictor 2004-08-17 10:48:06
如题
...全文
477 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyvictor 2004-08-20
  • 打赏
  • 举报
回复
非常感谢大家的建议和意见
janage 2004-08-18
  • 打赏
  • 举报
回复
DotNet系统自己就提供了
using System.Web.Mail;
你可以去查看一下SDK帮助(当然是中文的了)。
usepc 2004-08-18
  • 打赏
  • 举报
回复
http://www.zdnet.com.cn/i/developer/story/200208/39052931/MailReceiver.rar
usepc 2004-08-18
  • 打赏
  • 举报
回复
//向服务器发送QUIT命令从而结束和POP3服务器的会话
Data = "QUIT"+CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData,0,szData.Length);
Status.Items.Add(RdStrm.ReadLine());

//断开连接
NetStrm.Close();
usepc 2004-08-18
  • 打赏
  • 举报
回复
//用110端口新建POP3服务器连接
Server = new TcpClient(PopServer.Text,110);
Status.Items.Clear();

try
{
//初始化
NetStrm = Server.GetStream();
RdStrm= new StreamReader(Server.GetStream());
Status.Items.Add(RdStrm.ReadLine());

//登录服务器过程
Data = "USER "+ Username.Text+CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData,0,szData.Length);
Status.Items.Add(RdStrm.ReadLine());

Data = "PASS "+ Password.Text+CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData,0,szData.Length);
Status.Items.Add(RdStrm.ReadLine());

//向服务器发送STAT命令,从而取得邮箱的相关信息:邮件数量和大小
Data = "STAT"+CRLF;
szData = System.Text.Encoding.ASCII.GetBytes(Data.ToCharArray());
NetStrm.Write(szData,0,szData.Length);
Status.Items.Add(RdStrm.ReadLine());
marvelstack 2004-08-18
  • 打赏
  • 举报
回复
参考
http://blog.csdn.net/zhzuo/archive/2004/07/12/39459.aspx
如果需要套接字的请写信给我。
tongcheng 2004-08-18
  • 打赏
  • 举报
回复
使用第三方的邮件组件,如Jmail
lyvictor 2004-08-18
  • 打赏
  • 举报
回复
http://www.zdnet.com.cn/i/developer/story/200208/39052931/MailReceiver.rar

直接web里下不下,用影音传送下下来了,研究……
miqier 2004-08-18
  • 打赏
  • 举报
回复
留下邮件,我发给你。
kenMoxi 2004-08-18
  • 打赏
  • 举报
回复
你也可以使用第三方的邮件组件,如Jmail
public bool SendMail()
{
try
{
jmail.MessageClass myMail = new jmail.MessageClass();

myMail.Charset="GB2312";//邮件使用字符集

myMail.From = model.From; //邮件发送者邮件地址

myMail.FromName = model.FromName; //邮件发送者名称

myMail.AddRecipient(model.To,model.ToName,"");//添加邮件接收者名称以及邮件地址

myMail.Subject = model.Subject; //邮件主题

myMail.Body = model.Body; //邮件内容

// 判断是否有附件
if(model.FileName != "")
{
myMail.AddAttachment(model.FileName,false,model.FileType);//添加邮件附件
}

myMail.Priority =model.Priority; //邮件的紧急程度

myMail.MailServerUserName = model.MailServerUserName; //登陆邮件服务器的用户名

myMail.MailServerPassWord = model.MailServerPassWord; //登陆邮件服务器的密码

return myMail.Send(model.MailDomain,false); //邮件服务器地址(例:smtp.163.com)
}
catch(Exception ex)
{
throw new Exception(this+".SendMail():"+ex.ToString());
}
}
usepc 2004-08-18
  • 打赏
  • 举报
回复
不是呀,我试过可以下载呀。
TurboDing 2004-08-18
  • 打赏
  • 举报
回复
System.Web.Mail
这个不能进行SMTP服务器验证
bgrobert 2004-08-18
  • 打赏
  • 举报
回复
呵呵,加入vs自带的类。
lyvictor 2004-08-18
  • 打赏
  • 举报
回复
/*
*DotNet系统自己就提供了
*using System.Web.Mail;
*你可以去查看一下SDK帮助(当然是中文的了)。
*/
这个是在asp.net环境下用,我用windows Form

usepc(usepc) 提供的网址无法访问,提供的代码大致明白,不完全

我写了一个发的,可以收到标题,内容收不到,且不稳定,有时能发,有时不能发
xswh418 2004-08-18
  • 打赏
  • 举报
回复
借楼主的地盘:
楼上:偶是这么写的,可是代码执行了(因为弹出对话框了)可是邮箱里却没有呀。怎么回事
MailMessage message=new MailMessage();
message.From=TB_From.Text;
message.To=TB_To.Text;
message.Subject=TB_Topic.Text;
message.Body=TB_Context.Text;
if(TB_Attachment.Text.Length>0)
{
message.Attachments.Add(new MailAttachment(TB_Attachment.Text,MailEncoding.Base64));
}
SmtpMail.Send(message);
MessageBox.Show("发送成功");

110,549

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧