阿里云 服务器 邮件发送

使用SMTP(简单邮件传输协议)发送邮件一般都是使用默认的25端口,而阿里云服务器为了安全将25端口封禁了,会出现在本机测试发送邮件功能正常,但是部署到服务器上却发送失败的情况。

 解决办法是向阿里云申请解封25端口,或者更换端口,建议使用587端口(有的说465可用但经过测试不可用)

using System.Configuration;
using System.Collections.Specialized;
using System.IO;
using System.Net.Mail;
public string BulidFile(string tempPath, NameValueCollection values)
        {
            string prefix = "[$";
            string postfix = "]";
            StreamReader reader = null;
            string template = string.Empty;
            try
            {
                reader = new StreamReader(tempPath);
                template = reader.ReadToEnd();
                reader.Close();
                if (values != null)
                {
                    foreach (string key in values.AllKeys)
                    {
                        template = template.Replace(string.Format("{0}{1}{2}", prefix, key, postfix), values[key]);
                    }
                }
            }
            catch
            {

            }
            finally
            {
                if (reader != null)
                    reader.Close();
            }
            return template;

        }

Email文件:

Hello,
[$NAME]
[$URL]

配置文件:

<appSettings>
    <!-- 发送地址-->
    <add key="sendFrom" value="[email protected]" />
    <!-- 发送人的名字-->
    <add key="sendUserName" value="发送人姓名" />
    <!-- 邮件标题-->
    <add key="sendTitle" value="EmailTitle" />
    <!-- 邮箱用户名-->
    <add key="userName" value="[email protected]" />
    <!-- 邮箱密码注意使用授权码-->
    <add key="passWord" value="bccdbrpveswhbghj" />
    <!-- 邮箱服务器地址-->
    <add key="smtpServer" value="smtp.qq.com" />
  </appSettings>
 1 public void SendEmail(string recName)
 2         {
 3             string templetpath = Server.MapPath("../../Resource/EmailTemplate/Email.txt");
 4             NameValueCollection myCol = new NameValueCollection();
 5             string Url ="";
 6             string Name = "";
 7             myCol.Add("NAME", Name);
 8             myCol.Add("URL", Url);
 9             string mailBody = BulidFile(templetpath, myCol);
10             string sendFrom = ConfigurationManager.AppSettings["sendFrom"]; //生成一个发送地址
11             string sendUserName = ConfigurationManager.AppSettings["sendUserName"];//发送人的名字
12             string sendTitle = ConfigurationManager.AppSettings["sendTitle"];//发送邮件标题
13             string username = ConfigurationManager.AppSettings["userName"];//发送邮箱用户名
14             string passwd = ConfigurationManager.AppSettings["passWord"];//发送邮箱密码
15             string smtpServer = ConfigurationManager.AppSettings["smtpServer"];//发送邮箱密码
16             MailMessage msg = new MailMessage();
17             msg.To.Add(recName);
18             /*
19             * msg.To.Add("[email protected]");
20             * msg.To.Add("[email protected]");
21             * msg.To.Add("[email protected]");可以发送给多人
22             */
23             /*
24             * msg.CC.Add("[email protected]");
25             * msg.CC.Add("[email protected]");可以抄送给多人
26             */
27             /* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/
28             msg.From = new MailAddress(sendFrom);
29             msg.Subject = sendTitle;//邮件标题
30             msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码
31             msg.Body = mailBody;//邮件内容
32             msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码
33             msg.Priority = System.Net.Mail.MailPriority.High;//邮件优先级
34             msg.IsBodyHtml = false;//是否是HTML邮件
35             SmtpClient client = new SmtpClient();
36             //注意一下三行代码
37             client.EnableSsl = true;
38             client.UseDefaultCredentials = false;
39             client.DeliveryMethod = SmtpDeliveryMethod.Network;
40             //指定发件人的邮件地址和密码以验证发件人身份默认端口为25
41             client.Port = 587;
42             client.Credentials = new System.Net.NetworkCredential(sendFrom, passwd);
43             client.Host = smtpServer;
44             try
45             {
46                 client.Send(msg);  --异步可使用SendAsync
48             }
49             catch (System.Net.Mail.SmtpException ex)
50             {
51
52             }
53         }

原文地址:https://www.cnblogs.com/heibai-ma/p/10913466.html

时间: 2024-10-28 17:32:44

阿里云 服务器 邮件发送的相关文章

使用阿里云服务器写shell脚本发送qq邮件的三个形式

[准备工作] IPtables的使用如下命令:(执行以下以下命令把25和465端口打开) iptables -A INPUT -p tcp --dport 25 -j ACCEPT iptables -A OUTPUT -p tcp --sport 25 -j ACCEPT iptables -A INPUT -p tcp --dport 465 -j ACCEPT iptables -A OUTPUT -p tcp --sport 465 -j ACCEPT 要先开启 经过以上的三步我们就可以

阿里云服务器不能发邮件,禁用25端口的解决办法

前阵子刚刚买了个阿里云服务器,在做发送邮件功能时,发现本来在本地测试没问题的功能,在服务器上连接超时. 后来发现是阿里云将25端口禁用了("坑!当然也有其道理"),大概2016年9月后买的服务器都被禁用.25禁用了,我们就不用它.以163邮箱为例: 网易163免费邮箱相关服务器信息: 我这里用的就是SSL协议端口465,代码如下 <?phpheader("content-type:text/html;charset=utf-8");include("

阿里云服务器25端口禁用之如何使用Java发邮件(解决25端口禁用问题)

通常我们在本地使用Java发送邮件,通常是没有问题的,但是部署到服务器的话,就可能遇到问题.当然了,这与运营商也有关系.比如我之前在咖啡主机上购买虚拟机,然后将个人网站部署上去,通常是没有问题的,没有那么多限制. 但是在阿里云上限制就比较多,比如如果端口的入口方向不开的话,可能导致你在服务器上安装的某款软件,例如常用的Tomcat,会无法使用. 一来端口没有开放,二来白名单设置问题. 今天说说阿里云服务器25端口禁用之如何解决它并成功发送邮件,首先贴完整代码,如下所示: package com.

阿里云服务器 发送邮箱 STMP 25端口 465端口问题 Javamail 25被禁用

我们传统使用的比较简单的是 STMP 25端口收发邮件 今天发现刚购买的阿里云服务器不能作为客户端通过STMP 25端口发送邮件 开始在网上有说发现是JDK1.8的原因,然后自己也把JDK1.8换到了JDK1.7 还是不行,所以这里排除了JDK的原因. 那么问题来了,是否25端口不能连接适用喃? 然后在终端输入命令行 ,可测试25端口是否可连接. telnet smtp.163.com 25 返回成功 说明你的服务器 是没有封掉25端口的.上面的图是我自己的电脑,当然能连通. 当换到服务器测试的

阿里云服务器,数据库热备、暖备、冷备实战-镜像篇(域环境下配置)

阿里云服务器 值得信赖 概述 “数据库镜像”是一种针对数据库高可用性的基于软件的解决方案.其维护着一个数据库的两个相同的副本,这两个副本分别放置在不同的SQL Server数据库实例中.建议使用不同位置的两台服务器来承载.在同一时刻,其中一台上的数据库用于客户端访问,充当“主体服务器”角色:而另一台则根据镜像会话的配置和状态,充当热备份服务器,即“镜像服务器角色”,这两种角色不是绝对的. 优点 l 增强了数据保护功能 l 提高了数据库的可用性 l 提高了生产数据库在升级期间的可用性 工作方式 在

阿里云服务器ECS按ctrl+alt+delete无法登录

今天在使用阿里云服务器远程桌面的时候发现怎么也进入不了,远程桌面无法连接,于是想到了在阿里云服务器管理控制台可以使用连接管理终端进行远程桌面连接,下面详细介绍阿里云服务器操作经验. 操作步骤如下 登录阿里云 - 进入云服务器管理控制台 - 管理 - 实例详情 - 下拉框更多 - 找到连接管理终端,如图所示 此时会弹出一个对话框,提示你输入管理终端密码,密码是6位数字,忘记的话可以修改密码.提示:如果持续出现黑屏,说明系统处于休眠状态,按任意键可以激活. 输入6位数字管理终端密码之后成功连接,问题

阿里云服务器下配置Nginx+PHP+Mysql+webbench(压力测试)+iftop(监控流量)

注意:在阿里云服务器下不用配置iptables 1.关闭SELINUX vi /etc/selinux/config #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq #保存退出 shutdown -r now #重启系统 2.使用yum安装wget yum install wget #安装下载工具 wget http://www.atomicorp.com/installers/atomic

转:【实用教程】阿里云服务器的配置和使用

[实用教程]阿里云服务器的配置和使用 随着网络应用的日常化,网络资源的使用已经不是专业人士或机构的专利.通过简单的学习,每个人都可以在无需硬件的情况下拥有一个甚至多个服务器,并配置属于自己的网页供人浏览.本教程基于阿里云服务器Windows服务器系统为例,通过简单的图文描述,可以让您在短时间内学会使用这个方法. 一. 创建Windows实例(租用阿里云服务器) 1.1 登陆阿里云服务器管理控制台,点击登录 如果没有帐号需要注册一个,具体过程不再赘述,注册完成后登陆控制台. 1.2 如下图所示,选

阿里云服务器linux配置iptables

尽管阿里云有云盾这样的对云服务器的安全监控保护,但是就如房子在相对安全的小区,关门总比不关门更安全吧.下面我们就开始配置阿里云服务器的iptables,为你的云服务器linux系统加上一道安全门.如果你对iptables基础知识不了解,请查看[IPTABLES]. 阿里云服务器的iptables服务默认是未开启的:[[email protected] ~]# service iptables statusFirewall is stopped.开始配置 一.配置filter表的防火墙 (1)查看