[置顶] asp.net 邮件发送提醒功能(接收方包括QQ邮箱等)

时间:2021-07-29 15:39:46


1、编写一个通用的邮件发送操作类:MailHelper.cs,代码如下:

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 SendeEmail(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;
}
//核心代码结束
}


}


2、Web页面中使用及调用示例,代码如下:


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="MailSendDemo.aspx.cs" Inherits="demo_MailSendDemo" 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 language="javascript" type="text/javascript">        //获取附件        function getAttachFile() {            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" />        <br />        <asp:Button ID="btnSend" runat="server" Text="发送" OnClientClick="getAttachFile()" OnClick="btnSend_Click" /><br />        <asp:Label ID="Label1" runat="server" Text=""></asp:Label>    </div>    <asp:HiddenField ID="HiddenField1" runat="server" />    </form></body></html>


 string a = mails.SendeEmail(TextBox1.Text, "你的邮箱号", "邮箱密码", TextBox2.Text, TextBox4.Text, TextBox5.Text, filePath, TextBox3.Text);

这里的在你实际使用的时候,替换成你的发送方邮箱账号和密码即可。


using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;public partial class demo_MailSendDemo : System.Web.UI.Page{    protected void Page_Load(object sender, EventArgs e)    {    }    protected void btnSend_Click(object sender, EventArgs e)    {               //实例邮件帮助类,并进行邮件发送        MailHelper mails = new MailHelper();        string filePath = HiddenField1.Value;        string a = mails.SendeEmail(TextBox1.Text, "你的邮箱账号", "邮箱密码", TextBox2.Text, TextBox4.Text, TextBox5.Text, filePath, TextBox3.Text);        Label1.Text = a;    }}

===========================================================================

如果觉得对您有帮助,微信扫一扫支持一下:

[置顶]        asp.net 邮件发送提醒功能(接收方包括QQ邮箱等)