none
网站要有发邮件功能,需要怎样? RRS feed

  • 问题

  • 一个网站,想实现能发邮件的功能,需要怎么做呢?程序上要有发邮件的功能模块,还需要其他什么吗?
    2010年4月6日 23:39

答案

  • 你好,.NET实现发邮件很简单的,不需要什么,只要你的防火墙不要挡住端口就可以了。

                try
                {
                    SmtpClient client = new SmtpClient("smtp.sina.com【邮件服务器,比如这个就是新浪邮箱的发件服务器】");
                    client.UseDefaultCredentials = false;
                    client.Credentials = new System.Net.NetworkCredential("发送邮箱的用户名", "发送邮箱的密码");
                    client.DeliveryMethod = SmtpDeliveryMethod.Network;
                    MailMessage mail = new MailMessage();
                    mail.From = new MailAddress("接收邮件的邮箱,就是你要发给谁");
                    mail.To.Add("抄送给谁,可以不填");
                    mail.Subject = "邮件标题";
                    mail.BodyEncoding = System.Text.Encoding.Default;
                    mail.Body = "邮件内容";
                    if (list != null)
                    {
                        foreach (Attachment item in list)
                        {
                            mail.Attachments.Add(item);
                        }
                    }
                    mail.IsBodyHtml = true;
                    client.Send(mail);
                    Response.Write("<script>alert('发送成功');</script>");
                }
                catch (Exception ex)
                {
                    Response.Write("<script>alert('" + ex.Message + "');</script>");
                }

    2010年4月7日 1:48
    版主
  • 如果你想只是简单的的实现发送邮件功能,而不是自己创建邮件服务器,你只要调用.NET 的发送邮件组件就可以了

    参照

    http://zhidao.baidu.com/question/14890894.html


    努力+方法=成功
    2010年4月7日 1:49
  • 你好,.NET实现发邮件很简单的,不需要什么,只要你的防火墙不要挡住端口就可以了。

                try
                {
                    SmtpClient client = new SmtpClient("smtp.sina.com【邮件服务器,比如这个就是新浪邮箱的发件服务器】");
                    client.UseDefaultCredentials = false;
                    client.Credentials = new System.Net.NetworkCredential("发送邮箱的用户名", "发送邮箱的密码");
                    client.DeliveryMethod = SmtpDeliveryMethod.Network;
                    MailMessage mail = new MailMessage();
                    mail.From = new MailAddress("接收邮件的邮箱,就是你要发给谁");
                    mail.To.Add("抄送给谁,可以不填");
                    mail.Subject = "邮件标题";
                    mail.BodyEncoding = System.Text.Encoding.Default;
                    mail.Body = "邮件内容";
                    if (list != null)
                    {
                        foreach (Attachment item in list)
                        {
                            mail.Attachments.Add(item);
                        }
                    }
                    mail.IsBodyHtml = true;
                    client.Send(mail);
                    Response.Write("<script>alert('发送成功');</script>");
                }
                catch (Exception ex)
                {
                    Response.Write("<script>alert('" + ex.Message + "');</script>");
                }

    邮件服务器配置在config文件中

    <system.net>
            <mailSettings>
                <smtp>
                    <network host="SMTP server ip" port="25" userName="" password="" />
                </smtp>
            </mailSettings>
        </system.net>

     

    局域网或者相同域的话,用户名和密码可以为空。(前提是自己的smtp server)

    2010年4月7日 7:07
  • 1. 自己的邮件服务器

    就是自己搭建一个SMTP的server,你可以百度下如何搭建smtp。

     

    2. 加入log,为了更好的跟踪你的程序,比如什么时候发的,发给谁的,内容是什么,发送是否成功。 万一有错了,还可以通过log来查看下邮件功能为什么出错了。

    • 已标记为答案 NewJoin 2010年4月13日 3:22
    2010年4月12日 5:31

全部回复

  • 你好,.NET实现发邮件很简单的,不需要什么,只要你的防火墙不要挡住端口就可以了。

                try
                {
                    SmtpClient client = new SmtpClient("smtp.sina.com【邮件服务器,比如这个就是新浪邮箱的发件服务器】");
                    client.UseDefaultCredentials = false;
                    client.Credentials = new System.Net.NetworkCredential("发送邮箱的用户名", "发送邮箱的密码");
                    client.DeliveryMethod = SmtpDeliveryMethod.Network;
                    MailMessage mail = new MailMessage();
                    mail.From = new MailAddress("接收邮件的邮箱,就是你要发给谁");
                    mail.To.Add("抄送给谁,可以不填");
                    mail.Subject = "邮件标题";
                    mail.BodyEncoding = System.Text.Encoding.Default;
                    mail.Body = "邮件内容";
                    if (list != null)
                    {
                        foreach (Attachment item in list)
                        {
                            mail.Attachments.Add(item);
                        }
                    }
                    mail.IsBodyHtml = true;
                    client.Send(mail);
                    Response.Write("<script>alert('发送成功');</script>");
                }
                catch (Exception ex)
                {
                    Response.Write("<script>alert('" + ex.Message + "');</script>");
                }

    2010年4月7日 1:48
    版主
  • 如果你想只是简单的的实现发送邮件功能,而不是自己创建邮件服务器,你只要调用.NET 的发送邮件组件就可以了

    参照

    http://zhidao.baidu.com/question/14890894.html


    努力+方法=成功
    2010年4月7日 1:49
  • 你好,.NET实现发邮件很简单的,不需要什么,只要你的防火墙不要挡住端口就可以了。

                try
                {
                    SmtpClient client = new SmtpClient("smtp.sina.com【邮件服务器,比如这个就是新浪邮箱的发件服务器】");
                    client.UseDefaultCredentials = false;
                    client.Credentials = new System.Net.NetworkCredential("发送邮箱的用户名", "发送邮箱的密码");
                    client.DeliveryMethod = SmtpDeliveryMethod.Network;
                    MailMessage mail = new MailMessage();
                    mail.From = new MailAddress("接收邮件的邮箱,就是你要发给谁");
                    mail.To.Add("抄送给谁,可以不填");
                    mail.Subject = "邮件标题";
                    mail.BodyEncoding = System.Text.Encoding.Default;
                    mail.Body = "邮件内容";
                    if (list != null)
                    {
                        foreach (Attachment item in list)
                        {
                            mail.Attachments.Add(item);
                        }
                    }
                    mail.IsBodyHtml = true;
                    client.Send(mail);
                    Response.Write("<script>alert('发送成功');</script>");
                }
                catch (Exception ex)
                {
                    Response.Write("<script>alert('" + ex.Message + "');</script>");
                }

    邮件服务器配置在config文件中

    <system.net>
            <mailSettings>
                <smtp>
                    <network host="SMTP server ip" port="25" userName="" password="" />
                </smtp>
            </mailSettings>
        </system.net>

     

    局域网或者相同域的话,用户名和密码可以为空。(前提是自己的smtp server)

    2010年4月7日 7:07
  • 你好,

    花雨透

    SmtpClient client = new SmtpClient("smtp.sina.com【邮件服务器,比如这个就是新浪邮箱的发件服务器】");

    client.Credentials = new System.Net.NetworkCredential("发送邮箱的用户名", "发送邮箱的密码");

    ==

    <network host="SMTP server ip" port="25" userName="" password="" />

    2010年4月7日 8:19
    版主
  • 你好,

    花雨透

    SmtpClient client = new SmtpClient("smtp.sina.com【邮件服务器,比如这个就是新浪邮箱的发件服务器】");

    client.Credentials = new System.Net.NetworkCredential("发送邮箱的用户名", "发送邮箱的密码");

    ==

    <network host="SMTP server ip" port="25" userName="" password="" />

    我意思是放在配置文件中,更加灵活而已。

     

    我仔细看了下楼主的request,是问出了发邮件功能,还需要什么,我觉得除了基本的发送邮件功能外,最好加上log。其他应该没什么需要加的了。

    1. 最好有自己的smtp server。

    2. 加入log

    2010年4月8日 3:10
  • 那么有自己的邮件服务器,又需要那么工作呢?就是怎样才有自己的邮件服务器?
    2010年4月9日 0:29
  • 为什么要加入Log啊?
    2010年4月9日 0:29
  • 1. 自己的邮件服务器

    就是自己搭建一个SMTP的server,你可以百度下如何搭建smtp。

     

    2. 加入log,为了更好的跟踪你的程序,比如什么时候发的,发给谁的,内容是什么,发送是否成功。 万一有错了,还可以通过log来查看下邮件功能为什么出错了。

    • 已标记为答案 NewJoin 2010年4月13日 3:22
    2010年4月12日 5:31
  • OK,谢谢

    2010年4月13日 3:21