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

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 虚拟主机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. 在收信邮箱的收件箱,检查是否收到了测试邮件,验证测试结果。


相关文章
|
3月前
|
存储 数据安全/隐私保护
.NET Core 究竟隐藏着怎样的神秘力量,能实现强身份验证与数据加密?
【8月更文挑战第28天】在数字化时代,数据安全与身份验证至关重要。.NET Core 提供了强大的工具,如 Identity 框架,帮助我们构建高效且可靠的身份验证系统,并支持高度定制化的用户模型和认证逻辑。此外,通过 `System.Security.Cryptography` 命名空间,.NET Core 还提供了丰富的加密算法和工具,确保数据传输和存储过程中的安全性。以下是一个简单的示例,展示如何使用 .NET Core 的 Identity 框架实现用户注册和登录功能。
39 3
|
3月前
|
网络安全 C++
【Azure Developer】Visual Studio 2019中如何修改.Net Core应用通过IIS Express Host的应用端口(SSL/非SSL)
【Azure Developer】Visual Studio 2019中如何修改.Net Core应用通过IIS Express Host的应用端口(SSL/非SSL)
|
3月前
|
缓存 NoSQL Linux
【Azure Redis 缓存】Linux VM使用6380端口(SSL方式)连接Azure Redis (redis-cli & stunnel)
【Azure Redis 缓存】Linux VM使用6380端口(SSL方式)连接Azure Redis (redis-cli & stunnel)
|
5月前
|
Java C# 数据安全/隐私保护
|
6月前
|
安全 Linux 网络安全
|
6月前
|
网络安全 数据安全/隐私保护
JavaMail给QQ邮箱发邮件报错,没有SSL加密
JavaMail给QQ邮箱发邮件报错,没有SSL加密
|
6月前
|
C# 数据安全/隐私保护
一款实用的.NET Core加密解密工具类库
一款实用的.NET Core加密解密工具类库
|
算法 网络安全 C#
一个基于.Net开发齐全的加密库
一个基于.Net开发齐全的加密库
90 0
|
安全 Java Shell
Docker实战 | 第四篇:Docker启用TLS加密解决暴露2375端口引发的安全漏洞,被黑掉三台云主机的教训总结
Docker实战 | 第四篇:Docker启用TLS加密解决暴露2375端口引发的安全漏洞,被黑掉三台云主机的教训总结
|
4月前
|
弹性计算 应用服务中间件 Linux
阿里云服务器开放端口完整图文教程
笔者近期开发完成的服务端程序部署在阿里云的ECS云服务器上面,一些应用程序配置文件需要设置监听的端口(如Tomcat的8080、443端口等),虽然通过CentOs 7系统的的「防火墙」开放了对应的端口号,任然无法访问端口号对应的应用程序,后面了解到原来还需要设置云服务器的「安全组规则」,开放相应的端口权限,服务端的接口才能真正开放。
690 1
阿里云服务器开放端口完整图文教程