虚拟主机ASP.NET 使用SSL加密465端口发邮件demo

简介: 虚拟主机ASP.NET 使用SSL加密465端口发邮件demo

1、背景


因云虚拟主机的25端口默认封闭,需要使用SSL加密端口(通常是465端口)来对外进行发送邮件。很多cms框架的程序如果无法发信,调试需要熟悉框架发信代码,本文通过提供.NET的使用SSL加密465端口的方法和demo,用户测试虚拟主机的发信功能。


2、操作步骤


  1. 提前联系邮箱服务商获取使用SSL加密方式发送邮件的配置信息。

配置项

说明

发邮件服务器地址

输入服务器邮箱地址。例如,a***.example.com。

发邮件服务器端口号

加密端口一般是465端口。

邮箱用户名

可能是Email地址,也可能是Email地址前缀,具体可咨询邮箱服务商。

邮箱客户端密码

部分邮箱服务商Web浏览器登录界面的登录密码和客户端密码并不相同,可能需要单独设置,具体可咨询邮箱服务商。


  1. 根据如下代码demo,编写发信程序。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Mail;
public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        MailMessage objMail = new MailMessage();//实例化一个邮件类objMail
        objMail.From = mailFrom.Text;//objMail.From表示原邮件地址 即发送人的邮箱
        objMail.To = mailTo.Text;//objMail.To 表示收件人地址 即收件人邮箱
        objMail.Subject = Subject.Text;//objMail.Subject 表示邮件主题 即邮件的标题
        objMail.Body = Body.Text;//objMail.Body 即邮件的内容
        objMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
        objMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "xxxxxx@163.com");  //邮箱的用户名
        objMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "xxxxxx"); //邮箱smtp服务授权码,邮件服务商提供
        objMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", 465);
        objMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");
        SmtpMail.SmtpServer ="smtp.163.com";//对应邮箱发送邮件的服务器地址,本测试以163邮箱为例
        try
        {
            SmtpMail.Send(objMail);//执行发送操作
            Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<scripts>alert(‘发送成功’)");
        }
        catch (Exception ex)
        {
            Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<scripts>alert(‘发送失败’)"+ex);
        }
    }
}
<%@ Page Language="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="Default2" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type"content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1"runat="server">
        <div>
            欢迎使用邮件发信测试文件<br />
            <br />
            <br />
            发件人: <asp:TextBox ID="mailFrom"runat="server"></asp:TextBox>
            <br />
            收件人: <asp:TextBox ID="mailTo"runat="server"></asp:TextBox>
            <br />
            主题:&nbsp; 
            <br />
            <asp:TextBox ID="Subject"runat="server"Width="421px"></asp:TextBox>
            <br />
            内容:<br />
            <asp:TextBox ID="Body"runat="server"Height="142px"TextMode="MultiLine"Width="419px"></asp:TextBox>
            <br />
            <asp:Button ID="Button1"runat="server"OnClick="Button1_Click"Text="发送" />
            <br />
        </div>
    </form>
</body>
</html>


  1. Default.aspx.cs和Default.aspx上传到虚拟主机的FTP的根目录下。访问http://虚拟主机域名/Default.aspx


  1. 填写测试页面的发件人、收件人、主题和内容信息,点击页面上的发信按钮,测试发信。如果发信成功,就会显示【发送成功】,如果发信失败,会有相关报错信息。



  1. 在收信邮箱的收件箱,检查是否收到了测试邮件,验证测试结果。


相关文章
|
10天前
|
SQL 安全 网络安全
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
22 0
|
1月前
|
网络安全 数据安全/隐私保护
JavaMail给QQ邮箱发邮件报错,没有SSL加密
JavaMail给QQ邮箱发邮件报错,没有SSL加密
13 0
|
1月前
|
存储 缓存 安全
https跳过SSL认证时是不是就是不加密的,相当于http?
https跳过SSL认证时是不是就是不加密的,相当于http?
123 0
|
1月前
|
云安全 安全 网络安全
简单了解SSL--保障网络安全的加密技术
SSL(Secure Sockets Layer)是一种为互联网通信提供安全及数据完整性保障的协议。SSL通过加密技术,在客户端(如浏览器)和服务器之间建立一个加密通道,使得在两台计算机间传输的数据得以保护,防止数据被窃取或篡改。
|
2月前
|
DataWorks 关系型数据库 Shell
DataWorks数据源问题之配置ssl加密如何解决
DataWorks数据源是指DataWorks中配置的用于数据集成的外部数据源;本合集将讲解如何在DataWorks中配置和管理数据源,以及处理数据源连接和集成过程中的问题。
50 5
|
3月前
|
关系型数据库 网络安全 分布式数据库
如何为PolarDB数据库设置SSL加密以提高链路安全性
如何为PolarDB数据库设置SSL加密以提高链路安全性 为了保障网络安全,提高链路安全性,您可以为PolarDB数据库启用SSL(Secure Sockets Layer)加密,并安装SSL CA证书到相关的应用服务。SSL在传输层对网络连接进行加密,能提升通信数据的安全性和完整性,但可能会增加网络连接响应时间。
57 2
|
5月前
|
开发框架 .NET API
.net gRPC初探 - 从一个简单的Demo中了解并学习gRPC
.net gRPC初探 - 从一个简单的Demo中了解并学习gRPC
40 0
|
6月前
|
调度
Quartz.NET 任务调度框架的demo实例
​ # 1、新建项目 简单实例,新建一个控制台程序 # 2、Nuget安装Quartz ![请在此添加图片描述](https://developer-private-1258344699.cos.ap-guangzhou.myqcloud.com/column/article/5877188/20231031-52d48c93.png?x-cos-security-token=baeOYKJ0BOuKXaDG6L8qKX7pdH823CLa740df95695ddd90763a204f7cd7172afjLbyfjQS2rqYm0waz5Rlsx3p2jhWg-yj9JZ3WKDq32bpX
25 0
|
3月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
42 0
|
1月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
100 5