asp.net发送邮件示例分享

所属分类: 网络编程 / ASP.NET 阅读数: 1144
收藏 0 赞 0 分享

mailhelper  -------mail帮助类

复制代码 代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mail;

/// <summary>
///mailhelper 的摘要说明
/// </summary>
public class mailhelper
{
    public mailhelper()
    {
        //
        //TODO: 在此处添加构造函数逻辑
        //
    }

    /// <summary>
    /// 邮件发送操作
    /// </summary>
    /// <param name="Addressee">收件人地址</param>
    /// <param name="From">发件人地址</param>
    /// <param name="sendpassword">发件人密码</param>
    /// <param name="Copy">抄送人地址</param>
    /// <param name="secret">密送人地址</param>
    /// <param name="Subject">发送主题</param>
    /// <param name="Attachment">附件信息</param>
    /// <param name="Body">邮件内容</param>
    public string SendeEmal(string Addressee, string From, string sendpassword, string Copy, string secret, string Subject, string Attachment, string Body)
    {
        MailMessage objMailMessage;
        MailAttachment objMailAttachment;


        // 创建邮件消息
        objMailMessage = new MailMessage();

        //发件人EMAIL
        objMailMessage.From = From;//源邮件地址

        //收件人EMAIL
        objMailMessage.To = Addressee; //目的邮件地址
        //邮件抄送
        objMailMessage.Cc = Copy;
        //邮件misong
        objMailMessage.Bcc = secret;


        //邮件主题
        objMailMessage.Subject = Subject; //发送邮件的标题

        //邮件内容
        objMailMessage.Body = Body;//发送邮件的内容

        // 创建一个附件对象
        if (Attachment != "")
        {
            objMailAttachment = new MailAttachment(Attachment);//发送邮件的附件 c:\\test.txt
            objMailMessage.Attachments.Add(objMailAttachment);//将附件附加到邮件消息对象中
        }

        //接着利用SMTP来发送邮件,需要使用Microsoft .NET Framework SDK v1.1和它以上的版本
        //基本权限
        objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
        //用户名
        string name = From.Substring(0, From.IndexOf('@'));
        objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", name);
        //密码
        objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", sendpassword);
        //如果没有上述三行代码,则出现如下错误提示:服务器拒绝了一个或多个收件人地址。服务器响应为: 554 : Client host rejected: Access denied
        //SMTP地址     
        string smtp = "smtp." + From.Substring(From.IndexOf('@') + 1);
        SmtpMail.SmtpServer = "smtp." + From.Substring(From.IndexOf('@') + 1);
        //开始发送邮件

        try
        {
            SmtpMail.Send(objMailMessage);
            return "邮件发送成功!";
        }
        catch (System.Net.Mail.SmtpException ex)
        {
            return ex.Message;
        }
        //核心代码结束
    }
}

然后下来是自己做的一个demo--

前台

复制代码 代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="mail.aspx.cs" Inherits="information_mail"
    ValidateRequest="false" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="../Style/jquery/jquery.js" type="text/javascript"></script>
    <script src="../Style/jquery/jquery.validate.js" type="text/javascript"></script>
    <script language="javascript" type="text/javascript">

        function gei() {
            var file_value = document.getElementById("File1").value;
            document.getElementById("HiddenField1").value = file_value;
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        发给:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
        抄送:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br />
        密送:<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox><br />
        主题:<asp:TextBox ID="TextBox5" runat="server"></asp:TextBox><br />
        内容:<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox><br />
        附件:<input id="File1" type="file" />
        <%--<asp:TextBox ID="TextBox6" runat="server"></asp:TextBox>--%>
        <br />
        <asp:Button ID="Button1" runat="server" Text="发送" OnClientClick="gei()" OnClick="Button1_Click" /><br />
        <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
    </div>
    <asp:HiddenField ID="HiddenField1" runat="server" />
    </form>
</body>
</html>



后台:
复制代码 代码如下:

protected void Button1_Click(object sender, EventArgs e)
    {        //实例邮件帮助类
        mailhelper mails = new mailhelper();

        string filePath = HiddenField1.Value;

        string a = mails.SendeEmal(TextBox1.Text, "邮件账号", "邮件密码", TextBox2.Text, TextBox4.Text, TextBox5.Text, filePath, TextBox3.Text);

        Label1.Text = a;
}

更多精彩内容其他人还在看

ASP.Net 之Datalist删除功能详解附代码

ASP.Net 之Datalist删除功能详解附代码,需要的朋友可以参考一下
收藏 0 赞 0 分享

ASP.NET(C#)验证数字的两种方法

ASP.NET(C#)验证数字的两种方法,需要的朋友可以参考一下
收藏 0 赞 0 分享

此页的状态信息无效,可能已损坏 的处理办法及原因分析

此页的状态信息无效,可能已损坏 的处理办法及原因分析,需要的朋友可以参考一下
收藏 0 赞 0 分享

MultiLine 换行后实现读取不换行的具体思路

输入内容中有换行,保存到数据库,直接查看感觉没有换行,但查询结果“以文本格式显示结果”你就会发现 其实是有换行的,下面与大家分享下具体的解决方法
收藏 0 赞 0 分享

swfupload ajax无刷新上传图片实例代码

在这里上传图片就需要用到ajax无刷新上传图片,这里面包含的东西不是一点半点。这里用到的是一个插件swfupload实现无刷新上传图片,感兴趣的朋友可以参考下哈
收藏 0 赞 0 分享

静态gb2312编码在项目传值出现中文乱码现象

参考的美工静态页面是gb2312格式的,当此编码拿到项目中后,utf-8编码的系统,加载页面时,会出现样式问题,比如不能正常居中等
收藏 0 赞 0 分享

System.Timers.Timer定时执行程序示例代码

如果是某个逻辑功能的定时,可以将code放到逻辑功能的类的静态构造函数中,在该逻辑类第一次执行时,静态构造函数会被调用,则定时自然启动
收藏 0 赞 0 分享

分享下Asp.Net面试题目及答案集合

这篇文章主要是总结asp.net开发人员在面试过程中常遇到的一些问题小结,需要的朋友可以参考下
收藏 0 赞 0 分享

给自定义Web控件添加事件(前后台代码)

给自定义控件(Web Control)添加事件具体前后台代码如下,感兴趣的朋友可以参考下哈
收藏 0 赞 0 分享

ASP.NET过滤器的应用方法介绍

ASP.NET过滤器的应用方法介绍,需要的朋友可以参考一下
收藏 0 赞 0 分享
查看更多