首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 急急急 net 如何发送和接收邮件 [已结贴,结贴人:zhangning8191]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhangning8191
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-08-19 10:17:36 楼主
    我接受到的邮件是乱码
    如下:
    Part_82928_22240716.1218100663553 Content-Type: text/plain; charset=gbk Content-Transfer-Encoding: quoted-printable=20=20D7=D4=BC=BA=B5=C4 zing888999 =C3=DC=C2=EB zhaning------=_Part_82928_22240716.1218100663553 Content-Type: text/html; charset=gbkContent-Transfer-Encoding: quoted-printable <DIV>&nbsp; </DIV> <DIV>&nbsp; </DIV> <DIV>&nbsp;=D7=D4=BC=BA=B5=C4 zing888999 =C3=DC=C2=EB zhaning </DIV> <DIV>&nbsp; </DIV>------=_Part_82928_22240716.1218100663553--

    我的专码语句是这么写的
    Encoding.UTF8.GetString(Convert.FromBase64String(str))
    怎么才能转化成字符串呢?上面那句话不对吗?
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • a285921021
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 10:37:261楼 得分:0
    刚刚写了个发送邮件的文章,可以去看看


    http://hi.baidu.com/bee9
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • isline
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 10:44:242楼 得分:0
    发送邮件时要指定发送内容为html,并且要指定编码格式
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yagebu1983
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 10:51:223楼 得分:10
    C# code
    /// <summary> /// 发送邮件方法 /// </summary> /// <param name="to">电子邮件地址</param> /// <param name="subject">邮件主题</param> /// <param name="filePath">文件路径</param> /// <param name="fileName">文件名</param> public static void SendMail(MailAddressCollection sendTo, string subject,string filePath,string fileName) { System.Net.Mail.MailMessage mailmsg = new System.Net.Mail.MailMessage(); if (sendTo != null) { //得到邮件地址 foreach (MailAddress address in sendTo) mailmsg.To.Add(address); } MailAddress FromAddress = new MailAddress(accountName); mailmsg.From = FromAddress; mailmsg.Subject = subject; mailmsg.IsBodyHtml = true;//设置邮件内容的格式 mailmsg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码 //得到html文件 string htmlFileContent=GetHtmlFile(filePath, fileName); //对html中的src进行cid化 string strHtml = GetSendHtml(fileName,htmlFileContent); //得到图片路径集合 ArrayList imgSrcPath = GetImgSrcPath(htmlFileContent,filePath,fileName); //设置潜入资源的ContentID的集合 ArrayList contentId = SetContentId(imgSrcPath); //得到图片名称集合 ArrayList ImgNameColletion = GetImgNameCollection(htmlFileContent, filePath); //得到发送html文件 string sendHtml = SetSendHtml(strHtml, contentId, ImgNameColletion); //设置邮件的查看格式 AlternateView mailContent = AlternateView.CreateAlternateViewFromString(sendHtml, null, MediaTypeNames.Text.Html); mailmsg.AlternateViews.Add(mailContent); if (imgSrcPath.Count > 0) { for (int i = 0; i < imgSrcPath.Count; i++) { //设置邮件的潜入资源图片 LinkedResource linkResource = new LinkedResource(imgSrcPath[i].ToString()); linkResource.ContentId = contentId[i].ToString(); mailContent.LinkedResources.Add(linkResource); } } System.Net.Mail.SmtpClient client = new SmtpClient(); client.Host = smtpServer; client.Port = smtpPort; client.Credentials = new System.Net.NetworkCredential(accountName, password);//用户名和密码 client.EnableSsl = true; client.Send(mailmsg); }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhangning8191
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 10:53:274楼 得分:0
    你得文章我看了 可是用不了啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • maco_wang
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 10:53:345楼 得分:0
    C# code
    public bool Send(String fromAddress, String toAddress, String subject, String body) { string strHost = string.Empty; string strAccount = string.Empty; string strPwd = string.Empty; string strFrom = string.Empty; strHost = ConfigurationManager.AppSettings["Host"].ToString(); //STMP服务器地址 strAccount = ConfigurationManager.AppSettings["UserName"].ToString(); //SMTP服务帐号 strPwd = ConfigurationManager.AppSettings["Pwd"].ToString(); //SMTP服务密码 strFrom = ConfigurationManager.AppSettings["From"].ToString(); //发送方邮件地址 SmtpClient _smtpClient = new SmtpClient(); _smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; //指定电子邮件发送方式 _smtpClient.Host = strHost; //指定SMTP服务器 _smtpClient.Credentials = new System.Net.NetworkCredential(strAccount, strPwd); //用户名和密码 MailMessage _mailMessage = new MailMessage(strFrom, toAddress); _mailMessage.Subject = subject; //主题 _mailMessage.Body = body; //内容 _mailMessage.BodyEncoding = System.Text.Encoding.UTF8; //正文编码 _mailMessage.IsBodyHtml = false; //设置为HTML格式 _mailMessage.Priority = MailPriority.High; //优先级 try { _smtpClient.Send(_mailMessage); return true; } catch { return false; } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • DemonAngle
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 10:54:106楼 得分:0
    如果是发送带有图片的呢?接收也有问题。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • maco_wang
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 10:54:437楼 得分:50
    http://www.cnblogs.com/zhji-sitemap/archive/2008/07/14/1242578.html
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhangning8191
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 10:55:218楼 得分:0
    我要asp.net的,不要c#的,我用c#也写了,和我问的问题是一样,都是2进制码。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • maco_wang
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 10:57:569楼 得分:0
    引用 8 楼 zhangning8191 的回复:
    我要asp.net的,不要c#的

    ????好像是概念上有点问题
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • maco_wang
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 10:59:3110楼 得分:0
    c#是后台代码,asp.net也需要后台代码呀,没有后台代码,那成asp了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhangning8191
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 11:04:1611楼 得分:0
    谢谢,您的回帖,可是到smtp.Send(mail);就说“邮箱不可用,服务器相应为:Invalid User”,这是什么意思?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhangning8191
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 11:12:2612楼 得分:0
    对了,还有就是有点跑题了,我问的是邮件的接收中的乱码问题,大家都说邮件发送的问题,我晕,谢谢大家~~~~~~
    继续说说邮件接受的问题。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • a285921021
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 11:19:2813楼 得分:9
    hehe  ,不好意思,接收的话用了JMAIL吗?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhangning8191
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 11:22:2914楼 得分:0
    用了,可是不太会,还要添加到c盘什么的,好象不太明白
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sxmonsy
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 11:28:5215楼 得分:20
    引用 11 楼 zhangning8191 的回复:
    谢谢,您的回帖,可是到smtp.Send(mail);就说“邮箱不可用,服务器相应为:Invalid User”,这是什么意思?

    你把用户和密码改下呀.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhangning8191
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 12:01:2216楼 得分:0
    恩,谢谢大家帮忙,我的发送邮件基本搞定了.
    现在是邮件接受的问题了.还忘大家帮忙啊.

    using System.Text;
    using System.Net;
    using System.Net.Sockets;
    using System.IO;
    using System.Net.Mail;


        public static string Base64Decode(string str)
        {
            return Encoding.UTF8.GetString(Convert.FromBase64String(str));//问题出现在这里
        }
     
    这里的str是一串二进制码,如何转化成原来邮件的内容呢

    Part_82928_22240716.1218100663553 Content-Type: text/plain; charset=gbk Content-Transfer-Encoding: quoted-printable=20=20D7=D4=BC=BA=B5=C4 zing888999 =C3=DC=C2=EB zhaning------=_Part_82928_22240716.1218100663553 Content-Type: text/html; charset=gbkContent-Transfer-Encoding: quoted-printable <DIV>&nbsp; </DIV> <DIV>&nbsp; </DIV> <DIV>&nbsp;=D7=D4=BC=BA=B5=C4 zing888999 =C3=DC=C2=EB zhaning </DIV> <DIV>&nbsp; </DIV>------=_Part_82928_22240716.1218100663553--

     
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sqlmlm
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 13:19:3317楼 得分:5
    大家贴出的都是发邮件的,没有接收邮件的呀,我也只知道.net能发邮件,还没见过有收的类呀!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhangning8191
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 13:29:1518楼 得分:0
    我写过收的,可是没有办法将二进制码转化成字符串,就象我上面写的那样,出现问题了.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ginano
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 13:35:5019楼 得分:5
    我写的,参考了别人的email类,关键是要设置好邮箱的端口和验证就可以了
    C# code
    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.Data.SqlClient; using System.Web.Mail; /// <summary> /// EmailSystem 的摘要说明 /// </summary> public class EmailSystem { private string emailuser; private string emailpsw; private string emailport; private string emailsubject; private string emailname;//show the web title private string emailinfo; private string emailsmtp; public EmailSystem() { // // TODO: 在此处添加构造函数逻辑 // } public void GetEmailInfo() { DataSystem mydata = new DataSystem(); mydata.ConnectionString = ConfigurationManager.ConnectionStrings["DBString"].ToString(); mydata.Open(); SqlDataReader reader = mydata.StoredProcGetDataReader("WebInfo"); if (reader.HasRows) { while (reader.Read()) { this.emailuser = reader["system_email_user"].ToString(); this.emailinfo = reader["system_email_info"].ToString(); this.emailname = reader["title"].ToString(); this.emailport = reader["system_email_port"].ToString(); this.emailpsw = reader["system_email_psw"].ToString(); this.emailsubject = reader["system_email_title"].ToString(); this.emailsmtp = reader["system_email_smtp"].ToString(); } } reader.Close(); mydata.Close(); } public void SendEmail(string mailaddress,string subject,string mailinfo) {//.net smtp类进行邮件发送,支持认证,附件添加; MailMessage mailmsg = new MailMessage(); mailmsg.From = emailname; mailmsg.To = mailaddress; mailmsg.Subject = subject; mailmsg.Body = mailinfo; mailmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //是否需要验证,一般是要的 mailmsg.Fields.Add ("http://schemas.microsoft.com/cdo/configuration/sendusername",emailuser); //自己邮箱的用户名 mailmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", emailpsw); mailmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", emailport); mailmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true"); //自己邮箱的密码 SmtpMail.SmtpServer = emailsmtp; SmtpMail.Send(mailmsg); } public void SendRegEmail(string mailaddress) { this.SendEmail(mailaddress, this.emailsubject, this.emailinfo); } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhangning8191
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 14:44:1720楼 得分:0
    楼上大哥,现在我要接受邮件,不是发送..
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • MisterDotNet
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 14:47:4821楼 得分:1
    引用 20 楼 zhangning8191 的回复:
    楼上大哥,现在我要接受邮件,不是发送..


    接收邮件出现错误,是因为发送的时候某些地方出现错误,这个是因果关系昂

    lz参考一下这两篇文章吧:
    http://blog.sina.com.cn/s/blog_4c7d5a3001009hdy.html

    http://blog.sina.com.cn/s/blog_4c7d5a30010008xj.html
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved