用Asp.Net 来发送E-mail

      在这篇文章中,我们将演示如何编写asp.net来发送emails。这将要讨论到诸如email 格式,优先级别,附件和邮件加密。
      Asp.net通过使用SmtpMail对象来发送邮件。SmtpMail对象发送邮件是通过以下几步来完成的。
      # 导入与mail相关的名称空间。
      # 建立一个message对象并设置属性。
      # 通过SmtpMail对象实例的'Send'方法来发送邮件。

      现在让我们一步步的来了解从asp.net页面发送邮件的过程。
一. 导入名称空间
      在asp.net页面中导入System.Web.Util名称空间,这个名称空间包含了所有发送邮件所必须的对象。这些对象是:
对象简介
SmtpMail声明邮件系统(mail system)来发送邮件。
MailMessage声明一个消息(message),包含发送地址,接收地址等属性。
MailFormat声明消息的格式-Html,Text 等等。
MailAttachment声明邮件的附件。
MailEncoding enum声明加密方式:Base64 or UUencode.
MailPriority enum设置邮件的优先级别:值:高,底,一般

<% @Import Namespace = "System.Web.Util" %>

二。初始化MailMessage 对象
       使用以下语句可以实现初始化MailMessage对象。
       Dim mailObj AS new MailMessage
       MailMessage对象具有以下属性。

属性描述
From发送方的email地址
To接收方的email地址
SubjectEmail的主题
BodyEmail的内容
CCList of recipients copied on the email
BCCList of recipients blind-copied on the email
Priority邮件的优先级别
高,底,一般
BodyEncoding加密邮件的内容
Base64 或 UUencode
BodyFormat内容的格式
Html 或文本
Attachments附件列表


以下几行代码演示了如何使用MailMessage对象的属性的方法。他描述了我们将要创建的消息Message, 而这个消息(message)是用SmtpMail对象来发送的。在我们的这个例子中,mailObj就是MailMeessage对象的实例。

mailObj.From = "abc@mydomain.com"
mailObj.To = Request.Form ("to")
mailObj.Subject = "subject of the mail"
mailObj.Body = "Message of the mail"

三。发送邮件
      最后通过SmtpMail对象的'send'方法来发送邮件。下面的代码就是用来发送邮件的。
SmtpMail.Send(mailObj)
最后我们把以上的这些应用到一个完整的例子当中来。
下面是用Asp.net+C#编写的。

<%@page language="C#" %>
<%@Import Namespace="System.Web.Util" %>
<HTML><BODY>
<SCRIPT LANGUAGE="C#" RUNAT="server">
// This method is called on the server when the submit
// button is clicked on the client and when the page
// posts back to itself

public void SendMail (Object Obj, EventArgs E)
{
  

  MailMessage mailObj = new MailMessage();

  // 设置email的'from'和'to'的地址
  mailObj.From = Request.Form("From");
  mailObj.To = Request.Form("To");

  mailObj.Subject = "Subject Of the Mail";
  mailObj.Body = "Body of the Mail";

  // 可选: 使用html格式的Email
  mailObj.BodyFormat = MailFormat.Html;

  // 可选: 对邮件进行加密
  mailObj.BodyEncoding = MailFormat.Base64;

  // 可选: 设置邮件的优先级别为高
  mailObj.Priority = MailPriority.High;

 
// 可选: 附件
  // 注意这里我们创建了一个MailAttachment对象来附加一个文件到email。
  mailObj.Attachments.Add(new MailAttachment("c://test.doc"));

  // 使用SmtpMail对象来发送邮件。
  SmtpMail.Send(mailObj);
}
</SCRIPT>

<asp:label ID="Headingmsg" Text="Enter Your Email Address:" RUNAT="server"/>

<FORM METHOD="post" RUNAT="server">

Email Recipient: <INPUT TYPE="text" NAME="to"> <br>
Email Sender: <INPUT TYPE="text" NAME="from">

<INPUT TYPE="submit" NAME="Submit" VALUE="Send Mail" RUNAT="server" OnServerClick="SendMail">

</FORM>
</BODY>

   本人的翻译水平不高,有些地方自己懂,但是要翻译过来还真难,希望大家指正。括号中的英文是自己觉得翻译不准的地方。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
ASP.NET Core 提供了内置的身份验证和授权功能,可以轻松地实现用户的登录和登出功能。 要实现登录功能,首先需要在 ConfigureServices 方法中添加身份验证服务: ```csharp services.AddAuthentication(options => { options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme; options.DefaultChallengeScheme = GoogleDefaults.AuthenticationScheme; }) .AddCookie(options => { options.LoginPath = "/Account/Login/"; options.LogoutPath = "/Account/Logout/"; }) .AddGoogle(options => { options.ClientId = Configuration["Authentication:Google:ClientId"]; options.ClientSecret = Configuration["Authentication:Google:ClientSecret"]; }); ``` 上面的代码中,我们添加了 Cookie 身份验证服务,并指定了登录和登出的路径。同时,我们还添加了 Google 身份验证服务,并设置了 ClientId 和 ClientSecret。 接着,在 Configure 方法中启用身份验证中间件: ```csharp app.UseAuthentication(); ``` 现在,我们可以在 AccountController 中添加 Login 和 Logout 的动作方法: ```csharp public IActionResult Login(string returnUrl = "/") { ViewData["ReturnUrl"] = returnUrl; return View(); } [HttpPost] public async Task<IActionResult> Login(LoginViewModel model, string returnUrl = "/") { if (ModelState.IsValid) { var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false); if (result.Succeeded) { _logger.LogInformation("User logged in."); return RedirectToLocal(returnUrl); } if (result.RequiresTwoFactor) { return RedirectToAction(nameof(LoginWith2fa), new { returnUrl, model.RememberMe }); } if (result.IsLockedOut) { _logger.LogWarning("User account locked out."); return RedirectToAction(nameof(Lockout)); } else { ModelState.AddModelError(string.Empty, "Invalid login attempt."); return View(model); } } // If we got this far, something failed, redisplay form return View(model); } [HttpPost] public async Task<IActionResult> Logout() { await _signInManager.SignOutAsync(); _logger.LogInformation("User logged out."); return RedirectToAction(nameof(HomeController.Index), "Home"); } ``` 上面的代码中,我们首先添加了一个 Get 请求的 Login 方法,用于显示登录页面。接着,我们添加了一个 Post 请求的 Login 方法,用于处理用户提交的登录表单。在这个方法中,我们调用了 _signInManager.PasswordSignInAsync 方法进行身份验证,并根据不同的结果进行相应的处理。最后,我们还添加了一个 Logout 方法,用于处理用户的登出请求。 现在,我们只需要在视图中添加相应的表单,就可以实现登录和登出功能了: ```html <form asp-action="Login" asp-route-returnUrl="@ViewData["ReturnUrl"]" method="post"> <div class="form-group"> <label asp-for="Email"></label> <input asp-for="Email" class="form-control" /> <span asp-validation-for="Email" class="text-danger"></span> </div> <div class="form-group"> <label asp-for="Password"></label> <input asp-for="Password" class="form-control" /> <span asp-validation-for="Password" class="text-danger"></span> </div> <div class="form-group"> <div class="checkbox"> <label asp-for="RememberMe"> <input asp-for="RememberMe" /> @Html.DisplayNameFor(m => m.RememberMe) </label> </div> </div> <div class="form-group"> <button type="submit" class="btn btn-primary">Login</button> </div> </form> <a asp-action="Logout" asp-controller="Account">Logout</a> ``` 上面的代码中,我们添加了一个登录表单和一个登出链接,用于演示登录和登出功能。其中,登录表单使用了 asp-for 和 asp-validation-for 标签帮助器,可以自动生成相应的 HTML 元素和验证信息。登出链接使用了 asp-action 和 asp-controller 标签帮助器,可以自动生成相应的 URL。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值