能把用C#WinForm实现邮件发送功能的步骤写一下吗??
因为第一次做根本不知道如何下手。
最好一开始要要什么其他软件也告诉我。。
谢谢了

解决方案 »

  1.   

    #region 邮件发送函数
            /// <summary>
            /// 邮件发送函数
            /// </summary>
            /// <param name="MailTitle">邮件标题</param>
            /// <param name="ToEmail">要发送的email地址</param>
            /// <param name="EmailBody">邮件内容</param>
            public static void PostServerEmail(string MailTitle, string ToEmail, string EmailBody)
            {
                jmail.Message Jmail = new jmail.Message();            String Subject = MailTitle;
                String FromName = "台州人力网";
                String FromEmail = "[email protected]";
                //Silent属性:如果设置为true,JMail不会抛出例外错误. JMail. Send( () 会根据操作结果返回true或false
                Jmail.Silent = true;
                //Jmail创建的日志,前提loging属性设置为true
                Jmail.Logging = true;
                //字符集,缺省为"US-ASCII"
                Jmail.Charset = "GB2312";
                //信件的contentype. 缺省是"text/plain") : 字符串如果你以HTML格式发送邮件, 改为"text/html"即可。
                Jmail.ContentType = "text/html";
                //添加收件人
                Jmail.AddRecipient(ToEmail, "", "");
                Jmail.From = FromEmail;
                Jmail.FromName = FromName;
                //发件人邮件用户名
                Jmail.MailServerUserName = "[email protected]";
                //发件人邮件密码
                Jmail.MailServerPassWord = "bbb";
                //设置邮件标题
                Jmail.Subject = Subject;
                //邮件添加附件,(多附件的话,可以再加一条Jmail.AddAttachment( "c:\\test.jpg",true,null);)就可以搞定了。[注]:加了附件,讲把上面的Jmail.ContentType="text/html";删掉。否则会在邮件里出现乱码。
                //Jmail.AddAttachment("c:\\test.jpg", true, null);
                //邮件内容
                Jmail.Body = EmailBody;
                //Jmail发送的方法
                Jmail.Send("smtpcom.263xmail.com", false);
                Jmail.Close();
            }
            #endregion这个是利用jmail
      

  2.   

    补充一下要用windows服务(WindowsService)  来做
    这样应该怎么下手呢??
      

  3.   

    我们规定了不能用第三方的东西现在规定要用Windows服务来做请问这样我应该要怎么下手呢??
      

  4.   

    [Quote=引用 4 楼 huwei12345 的回复:]
    System.Net.Mail请问这个是什么意思??
      

  5.   


      '登录邮箱
      Private Sub GetLoginMail()
        Dim strResult As String = ""
        Dim strPopURL As String = "***" ‘POP3地址    server = New TcpClient(strPopURL, 110)
        NetworkStream = server.GetStream
        stmReader = New StreamReader(NetworkStream)    Me.pgbSingle.Value = 100 '控制进度条    Try
          strSend = "USER " & Me.txtName.Text.Trim & "@" & Me.cboLink.Text.Trim & vbCrLf
          bufferstring = Encoding.GetEncoding("gb2312").GetBytes(strSend.ToCharArray())
          NetworkStream.Write(bufferstring, 0, bufferstring.Length)
          strResult = stmReader.ReadLine()      Debug.Print(strResult)
          Me.pgbSingle.Value = 200 '控制进度条      strSend = "PASS " & Me.txtPwd.Text & vbCrLf
          bufferstring = Encoding.GetEncoding("gb2312").GetBytes(strSend.ToCharArray())
          NetworkStream.Write(bufferstring, 0, bufferstring.Length)
          strResult = stmReader.ReadLine()      Debug.Print(strResult)
          Me.pgbSingle.Value = 400 '控制进度条      strSend = "STAT " & vbCrLf
          bufferstring = Encoding.GetEncoding("gb2312").GetBytes(strSend.ToCharArray())
          NetworkStream.Write(bufferstring, 0, bufferstring.Length)
          strResult = stmReader.ReadLine()      Debug.Print(strResult)      Me.pgbSingle.Value = 600 '控制进度条      If strResult.IndexOf("-") = -1 Then
            strSend = "LIST " & vbCrLf
            bufferstring = Encoding.GetEncoding("gb2312").GetBytes(strSend.ToCharArray())
            NetworkStream.Write(bufferstring, 0, bufferstring.Length)        Me.pgbSingle.Value = 800 '控制进度条        Dim strInfo As String = ""
            Dim str() As String        Debug.Print(strResult)
            strInfo = stmReader.ReadLine()        If strInfo.IndexOf("-") <> -1 Then
              MessageBox.Show("你输入的邮箱或密码有误,请重新输入!", "提示", _
                              MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)          Me.ShowStep(-2)
              Exit Sub
            End If        str = strInfo.Split(" ")
            Me.lblMsg.Text = "你的邮件数量:" & str(1)
            mintECount = str(1)        Me.pgbSingle.Value = 1000 '控制进度条        MessageBox.Show(Me.txtName.Text.Trim & "@" & Me.cboLink.Text.Trim & "用户您好!!!", "提示", _
                            MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)        Showinfo()      Else
            MessageBox.Show("你输入的邮箱或密码有误,请重新输入!", "提示", _
                              MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
            Me.ShowStep(-2)
          End If
        Catch ex As Exception
          MessageBox.Show(ex.Message)
          Me.ShowStep(-2)
        End Try  End Sub
      

  6.   


    private static bool SendEmailBySMTP(string to, string subject, string body, string filePath)
            {
                bool result = true;
                try
                {
                    string userName = "[email protected]";
                    string pwd = "pwd";
                    string host = "smtp.gmail.com";                System.Net.Mail.SmtpClient smtpClient = new System.Net.Mail.SmtpClient();                smtpClient.Credentials = new System.Net.NetworkCredential(userName, pwd);
                    smtpClient.Host = host;                //如果是gmail 则需要将EnableSsl设置为True,163则设置为False
                    smtpClient.EnableSsl = true;                System.Net.Mail.MailMessage mailMsg = new System.Net.Mail.MailMessage();                mailMsg.Priority = System.Net.Mail.MailPriority.High;
                    mailMsg.From = new System.Net.Mail.MailAddress(userName);                string[] addressTo = to.Split(';');
                    foreach (string add in addressTo)
                    {
                        if (add.Trim().Length > 0)
                            mailMsg.To.Add(new System.Net.Mail.MailAddress(add));
                    }                mailMsg.Subject = subject;
                    mailMsg.Body = body;                if (filePath.Length > 0 && File.Exists(filePath))
                    {
                        System.Net.Mail.Attachment attachment = new System.Net.Mail.Attachment(filePath);
                        mailMsg.Attachments.Add(attachment);
                        //attachment = null;                }
                    smtpClient.Send(mailMsg);
                    smtpClient = null;            }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    result = false;
                }            return result;        }