| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1340 人关注过本帖
标题:100分求原理和流程
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
127.0.0.1是TCP/IP协议中约定的特殊地址,当你做单机调试时,由于没有实际的对方机器地址,就向这个地址发送数据,本机上的网络服务程序把这个地址当成是对方的地址处理,但实际上是送到了本机上,即在操作上,这跟与外面的机器通讯是相同的感觉,测试成功后(这种测试是在本机上同时运行服务端程序和客户端程序,须知现在是多任务操作系统,可以这样运行程序的),把地址换成真实的就可以了。

192.168.xxx.xxx是局域网网关配置的,用于识别局域网地址,不是外网的。比如每个学校的学生都有学号编码,不同的学校可以有相同的学号,但不是同一个人,这种编码出了学校外就得变化成世界通用的另外编码形式,用于唯一性识别。192.168是常用的而已,那个是可以改的。

授人以渔,不授人以鱼。
2013-02-21 16:35
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 41楼 TonyDeng
谢谢老大给我讲的这些 学到不少东西

梅尚程荀
马谭杨奚







                                                       
2013-02-21 16:52
小跳蚤
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:437
专家分:1623
注 册:2011-4-9
收藏
得分:0 
程序代码:
using System;
using System.Collections.Generic;
using  System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using     邮件的发送
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        SmtpClient client=null;//设置Stmp协议
        MailAddress mailFrom=null;//发信人地址
        MailAddress mailTo=null;//收信人地址
        MailMessage mailMsg;//发送的内容
        FileStream fs=null;//文件流
        private void SetSmtpClient(string ServerHost,int Port)
        {
            client =new SmtpClient();
            client.Host=ServerHost; //指定SMTP服务名  例如QQ邮箱为 smtp. 新浪cn邮箱为 smtp.等
            client.Port=Port; //设置端口
            client.Timeout=0;//设置超时
        }

        private void SetAddressFrom(string mailName,string mailPwd)
        {
            NetworkCredential define=new NetworkCredential(mailName,mailPwd);//创建服务器认证
            mailFrom=new MailAddress (mailName,textBox4.Text.Trim());//实例化发件人的地址
            client.Credentials=new NetworkCredential(mailFrom.Address,mailPwd);//指定发件人的信息,邮箱和密码
        }
      
        private bool CheckSize(string Path)
        {
            try
            {
              
                fs=new FileStream(Path,FileMode.Open);
                string name=fs.Name;
                int size=(int)(fs.Length/1024/1024);
                if(size>10)
                {
                    MessageBox.Show("文件长度不能大于10M!你选择的文件大小为"+ size.ToString()+"M","警告",MessageBoxButtons.OK,MessageBoxIcon.Warning);
                    return false;
                }
                return true;
            }
            catch(IOException e)
            {
                MessageBox.Show(e.Message);
                return false;
            }
          
        }
        private void btnSend_Click(object sender, EventArgs e)
        {
            if(textBox1.Text != "")
            {
                if (!CheckSize(textBox7.Text.Trim()))
                {
                    return;
                }
            }
            if (textBox1.Text == "")
            {
                MessageBox.Show("请输入SMTP服务器名!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (textBox2.Text == "")
            {
                MessageBox.Show("请输入发件人邮箱地址!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (textBox3.Text == "")
            {
                MessageBox.Show("请输入发件人邮箱密码!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (textBox5.Text == "")
            {
                MessageBox.Show("请输入收件人邮箱地址!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (MessageBox.Show("确定要发送当前的邮件吗", "询问", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
            {
                try
                {
                    //验证Smtp服务器信息
                    SetSmtpClient("smtp."+textBox1.Text.Trim()+comboBox1.Text.Trim(),Convert.ToInt32(domainUpDown1.Text.Trim()));
                  
                }
                catch (Exception Ex)
                {
                    MessageBox.Show("邮件发送失败,请确定SMTP服务名是否正确!" + "\n" + "技术信息:\n" + Ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                try
                {   //验证发件人信息
                    SetAddressFrom(textBox2.Text.Trim()+comboBox2.Text.Trim(),textBox3.Text.Trim());
                }
                catch (Exception Ex)
                {
                    MessageBox.Show("邮件发送失败,请确定发件邮箱地址和密码的正确性!" + "\n" + "技术信息:\n" + Ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return; 
                }
                mailMsg = new MailMessage();
                mailMsg.To.Clear();
                //添加收件人
                mailTo = new MailAddress(textBox5.Text.Trim()+comboBox3.Text.Trim());
                mailMsg.To.Add(mailTo);
                //发件人邮箱
                mailMsg.From = mailFrom;
                //邮件主题
                mailMsg.Subject = textBox6.Text.Trim();
                mailMsg.SubjectEncoding = Encoding.UTF8;
                //邮件正文
                mailMsg.Body = textBox8.Text.Trim();
                mailMsg.BodyEncoding = Encoding.UTF8;
                //清空历史附件                      
                mailMsg.Attachments.Clear();
                //添加附件
                mailMsg.Attachments.Add(new Attachment(textBox7.Text.Trim(), MediaTypeNames.Application.Octet));
                //邮件发送完处理的事件
                client.SendCompleted += new SendCompletedEventHandler(client_SendCompleted);
                //开始发送邮件
                client.SendAsync(mailMsg, "000000000");
            }
        }
        void client_SendCompleted(object sender, AsyncCompletedEventArgs e)
        {
            try
            {
                if (e.Cancelled)
                {
                    MessageBox.Show("发送以取消");
                }
                if (e.Error != null)
                {
                    MessageBox.Show("邮件发送失败!" + "\n" + "技术信息:\n" + e.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    MessageBox.Show("邮件成功发出!", "恭喜!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception Ex)
            {
                MessageBox.Show("邮件发送失败!" + "\n" + "技术信息:\n" + Ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void ValidInput()
        {
         
        }
        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();
            dlg.Filter = "All|*.*";
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                textBox7.Text = dlg.FileName;
            }
        }
    }
}
以前用C#写的玩的,楼主可以看看
2013-02-25 19:45
小跳蚤
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:437
专家分:1623
注 册:2011-4-9
收藏
得分:0 
可以实现发送邮件的功能,附件限制在10m内
2013-02-25 19:45
快速回复:100分求原理和流程
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040095 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved