25端口是什么端口服务?25端口为SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务器所开放,主要用于发送邮件。
25端口被很多木马程序所开放,比如Ajan、Antigen、Email Password Sender、ProMail、trojan、Tapiras、Terminator、WinPC、WinSpy等等。
拿WinSpy来说,通过开放25端口,可以监视计算机正在运行的所有窗口和模块。
为什么很多服务器或邮件服务商都禁25端口?
25是邮件专用端口,很少服务器开设了邮件服务,所以都关闭了,更为主要原因是因为25端口通常为SMTP协议,很多商家都用来做为邮件群发,所以阿里云都默认禁用25端口,无法使用TCP 25端口连接外部地址。
就连腾讯云也于2017年9月10日后对云主机25端口进行了限制,所以使用邮件发送一般我们可以使用企业邮件,直接用腾讯云企业邮箱免费版或阿里云企业邮件发送邮件即可!
如果服务商没开启25端口怎么发邮件?
服务器的安全组有没有开放25,如果没开启25端口可以用其它端口发送邮件,比如:465端口,所以不建议使用25端口发邮件。
推荐使用465端口发送邮件,PHP的有一个PHPMailer扩展,可以使用composer加载一下!
本着服务器安全的原则,云服务器上的端口非必要的服务就不要开启。
因此,如果用户有邮件传送需求,可以开启25端口,没有的话最好禁用。
阿里云喜欢用安全组屏蔽端口,于是我就赶紧去配置了安全规则。
进站出站都配置了,结果还是不行,然后索性把防火墙也关了,依旧不行。
经过一番折腾,发现阿里自带屏蔽25端口。
简直尴尬,后来找了阿里的一些规则文档,发现需要申请开通屏蔽端口。
但是经过咨询了阿里工作人员,发现现在已经不开放25端口,因为什么《互联网信息服务管理办法》、《中国互联网协会反垃圾邮件规范》均对垃圾邮件进行说明与管理规范。
让我考虑SSL加密SMTP通过465端口进行发件。
然后试了一波,发现465发送不了QQ邮件,尝试了网上说的587端口竟然发送成功了。
System.Net.Mail 空间的代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public
static
bool
SendTheMail(
string
strto,
string
subj,
string
bodys)
{
SmtpClient
_smtpClient = new
SmtpClient();
_smtpClient.EnableSsl
= true
;
_smtpClient.UseDefaultCredentials
= false
;
_smtpClient.DeliveryMethod
= SmtpDeliveryMethod.Network;
_smtpClient.Host
= "smtp.qq.com"
;
_smtpClient.Port
= 587;
_smtpClient.Credentials
= new
System.Net.NetworkCredential(
"aaa@qq.com"
,
"666"
);
//密码不是QQ密码,是qq账户设置里面的POP3/SMTP服务生成的key
MailMessage
_mailMessage = new
MailMessage(
"aaa@qq.com"
,
"888@yeah.net"
);
_mailMessage.Subject
= subj;//主题
_mailMessage.Body
= bodys;//内容
_mailMessage.BodyEncoding
= Encoding.Default;//正文编码
_mailMessage.IsBodyHtml
= true
;
//设置为HTML格式
_mailMessage.Priority
= MailPriority.High;//优先级
try
{
_smtpClient.Send(_mailMessage);
Console.WriteLine(
"发送成功"
);
return
true
;
}
catch
(Exception
e)
{
Console.WriteLine(
"发送失败"
);
throw
e;
}
}
还有一种方法:
这个方式是官方给的,主要是通过System.Web.Mail.MailMessage来实现发送,大家把这个方法放到自己的项目里面调用就好
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
///
<summary>
///
通过System.Web.Mail.MailMessage去发送,可以不被阿里云限制25端口的使用
///
暂时一般都用465端口
///
</summary>
///
<param name="smtpserver">SMTP服务,譬如:smtp.126.com</param>
///
<param name="userName">发件箱</param>
///
<param name="pwd">密码</param>
///
<param name="nickName">昵称</param>
///
<param name="strfrom">发件箱</param>
///
<param name="strto">收件箱</param>
///
<param name="MessageSubject">主题</param>
///
<param name="MessageBody">内容</param>
///
<param name="SUpFile">附件</param>
///
<param name="port">端口</param>
///
<param name="enablessl">SSL加密</param>
///
<returns></returns>
public
static
bool
SendWebEmail(
string
smtpserver,
string
userName,
string
pwd,
string
nickName,
string
strfrom,
string
strto,
string
MessageSubject,
string
MessageBody,
string
SUpFile,
int
port,
int
enablessl
= 0)
{
System.Web.Mail.MailMessage
mmsg = new
System.Web.Mail.MailMessage();
//邮件主题
mmsg.Subject
= MessageSubject;
mmsg.BodyFormat
= System.Web.Mail.MailFormat.Html;
//邮件正文
mmsg.Body
= MessageBody;
//正文编码
mmsg.BodyEncoding
= Encoding.UTF8;
//优先级
mmsg.Priority
= System.Web.Mail.MailPriority.High;
System.Web.Mail.MailAttachment
data = null
;
if
(SUpFile
!= ""
)
{
SUpFile
= HttpContext.Current.Server.MapPath(SUpFile);//获得附件在本地地址
System.Web.Mail.MailAttachment
attachment = new
System.Web.Mail.MailAttachment(SUpFile);
//create
the attachment
mmsg.Attachments.Add(attachment);
//add
the attachment
}
//发件者邮箱地址
mmsg.From
= string
.Format(
"\"{0}\"<{1}>"
,nickName,
strfrom);
//收件人收箱地址
mmsg.To
= strto;
mmsg.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"
,
"1"
);
//用户名
mmsg.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/sendusername"
,
userName);
//密码
mmsg.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/sendpassword"
,
pwd);
//端口
mmsg.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/smtpserverport"
,
port);
//使用SSL
mmsg.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/smtpusessl"
,
(enablessl == 1 ? "true"
:
"false"
));
//Smtp服务器
System.Web.Mail.SmtpMail.SmtpServer
= smtpserver;
try
{
System.Web.Mail.SmtpMail.Send(mmsg);
}
catch
(Exception
ex)
{
LogHelper.Error(ex.ToString());
return
false
;
}
return
true
;
}
自己亲测试过可以用!
下面我们介绍下服务器常用的端口说明:
21:FTP,FTP服务器所开放的端口,用于上传、下载。
22:SSH,22端口就是SSH 端口,用于通过命令行模式远程连接 Linux系统服务器。
80:HTTP,用于网站服务例如 IIS、Apache、Nginx 等提供对外访问。
110:POP3,110 端口是为 POP3(邮件协议 3)服务开放的。
443:HTTPS,网页浏览端口,能提供加密和通过安全端口传输的另一种 HTTP。
3306:MySQL,3306 端口,是 MySQL 数据库的默认端口,用于 MySQL 对外提供服务。
3389:Windows远程桌面服务,3389端口是 Windows 2000(2003) Server 远程桌面的服务端口,可以通过这个端口,用“远程桌面”连接工具来连接到云主机。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)