文档章节

MailBee.NET Objects发送电子邮件(SMTP)教程二:SMTP认证

Harriet666
 Harriet666
发布于 2017/04/28 14:24
字数 755
阅读 65
收藏 0
点赞 0
评论 0

MailBee.NET Objects介绍和试用点击查看>>>

大多数SMTP服务器都要求用户进行身份验证,才能将电子邮件发送到外部电子邮件地址(属于其他域的地址)。登录/密码通常与同一服务器上用户的POP3或IMAP帐户相同。

C#:
Smtp mailer = new Smtp();
SmtpServer server = new SmtpServer("smtp.company.com", "jdoe", "secret");    
mailer.SmtpServers.Add(server);
...
mailer.Send();                                                               

VB.NET:
Dim mailer As New Smtp() 
Dim server As New SmtpServer("smtp.company.com","jdoe","secret") 
mailer.SmtpServers.Add(server)
...
mailer.Send()

 

在这种情况下,如果要使用Connect方法手动建立连接,过程如下:

C#:
Smtp mailer = new Smtp();
SmtpServer server = new SmtpServer("mail.domain.com", "user@domain.com", "pass");
mailer.SmtpServers.Add(server);
mailer.Connect();
mailer.Hello();
mailer.Login();                                                            

VB.NET:

Dim mailer As New Smtp()

Dim server As New SmtpServer("mail.domain.com", "user@domain.com", "pass")
mailer.SmtpServers.Add(server)
mailer.Connect()
mailer.Hello()
mailer.Login()

 

如果启用SMTP认证(由于登录名和密码在SmtpServer函数中已经确定),那么Login方法将尝试使用服务器支持的最佳(最安全)的方法在SMTP服务器上进行身份验证。你也可以强制MailBee使用指定的身份验证方法,或尝试最简单而不是最安全的方法。
以下代码可以强制MailBee使用SASL LOGIN(不安全)、SASL PLAIN(不安全)或SASL NTLM(安全)的方法。只有SASL LOGIN或SASL PLAIN暂不支持SASL NTLM:

C#:
Smtp mailer = new Smtp();
SmtpServer server = new SmtpServer("smtp.company.com", "jdoe", "secret");
server.AuthMethods = AuthenticationMethods.SaslLogin | 
AuthenticationMethods.SaslPlain | AuthenticationMethods.SaslNtlm;
server.AuthOptions = AuthenticationOptions.PreferSimpleMethods;
mailer.SmtpServers.Add(server);
...
mailer.Send();                                                        

VB.NET:

Dim mailer As New Smtp() 
Dim server As New SmtpServer("smtp.company.com","jdoe","secret") 
server.AuthMethods = AuthenticationMethods.SaslLogin _ 
Or AuthenticationMethods.SaslPlain Or AuthenticationMethods.SaslNtlm
server.AuthOptions = AuthenticationOptions.PreferSimpleMethods
mailer.SmtpServers.Add(server)
...
mailer.Send()

 

一些较旧的服务器要求客户端自己进行身份验证,但不支持SMTP身份验证。这是因为SMTP身份验证是SMTP协议的可选扩展项(称为ESMTP身份验证更为正确)。在这种情况下,你可以使用与SMTP服务器共享用户帐户数据库的POP3服务器执行POP3认证。这被称为POP-before-SMTP认证。使用MailBee,你可以采用两种方式使用POP-before-SMTP。

如果POP3和SMTP服务器名称相同(例如,两个服务器都是mail.domain.com),并且POP3服务在默认端口110上运行:

C#:
Smtp mailer = new Smtp();
mailer.SmtpServers.Add("mail.domain.com", "jdoe@domain.com", "secret").AuthPopBeforeSmtp = true;
...
mailer.Send();                                                     

VB.NET:

Dim mailer As New Smtp() 
mailer.SmtpServers.Add("mail.domain.com", "jdoe@domain.com", "secret").AuthPopBeforeSmtp = True
...
mailer.Send()

 

如果服务器名称不同(例如POP3的POP.domain.com和SMTP的smtp.domain.com)或POP3端口是非标准的,请在连接到SMTP服务器之前使用AuthPopBeforeSmtp方法。

C#:
Smtp mailer = new Smtp();
mailer.SmtpServers.Add("smtp.domain.com");
mailer.AuthPopBeforeSmtp("pop.domain.com", 110, "jdoe@domain.com", "secret");
...
mailer.Send();                                                       

VB.NET:

Dim mailer As New Smtp() 
mailer.SmtpServers.Add("smtp.domain.com")
mailer.AuthPopBeforeSmtp("pop.domain.com", 110, "jdoe@domain.com", "secret")
...
mailer.Send()

 

注意:POP-before-SMTP验证完成后,你无需再调用Login方法。Login方法仅执行ESMTP认证。

MailBee还支持Windows集成身份验证(使用当前记录的Windows用户的凭据登录)。例如:

C#:
Smtp mailer = new Smtp();
mailer.SmtpServers.Add("smtp.domain.com", null, null, AuthenticationMethods.SaslNtlm);       

VB.NET:

Dim mailer As New Smtp() 
mailer.SmtpServers.Add("smtp.domain.com", Nothing, Nothing, AuthenticationMethods.SaslNtlm)

 

如果你开发的是在匿名IIS或ASP.NET用户文本中运行的ASP.NET应用程序(因为当前记录的用户是IIS用户而不是使用该应用程序的人员),那么你无法使用它。

© 著作权归作者所有

共有 人打赏支持
Harriet666
粉丝 2
博文 313
码字总数 220187
作品 0
MailBee电子邮件发送接收pop3/IMAP4/SMTP套件MailBee Objects下载

原文来自龙博方案网http://www.fanganwang.com/product/1281转载请注明出处 MailBee对象是一个组件集合。您可以使用该控件创建并将邮件发送到SMTP服务器并从POP3服务器接收、解析以及删除电子...

netkongjian
2014/05/05
0
0
Network:POP3和SMTP

简单来说: SMTP是用来寄信的:端口25 POP3是用来收信的:端口110 1.SMTP Simple Mail Transfer Protocal,简单邮件传输协议。 SMTP的一个重要特点是它能够在传送中接力传送邮件,即邮件可以...

rathan0
2016/03/30
7
0
什么是POP3、SMTP和IMAP?

POP3 POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,...

327051661
05/25
0
0
怎样使用QQ邮箱代收163邮箱的邮件

参考:网易163邮箱帮助 首先介绍一下什么是POP3,SMTP和IMAP POP3 POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子...

winycg
04/19
0
0
POP3、SMTP和IMAP协议

POP3 POP3是PostOffice Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,PO...

chapin
2014/09/12
0
0
hotmail在outlook2007中的设置

在姓名中输入你的名字(用户可自定义),在电子邮件地址中输入你要设置OutLook的电子邮件地址,账户类型设为POP3,接收邮件服务器为pop3.live.com,发送邮件服务器为smtp.live.com。在用户名...

技术小阿哥
2017/11/27
0
0
Django实现用户注册及邮箱认证链接

一、Django实现用户注册及邮箱认证链接 算法流程如下: 注册视图函数Signup实现如下 securitykey就是settings.py中设置的SECRETKEY,salt是经过base64加密的SECRETKEY, generatevalidateto...

初雪之音
2016/08/02
1K
2
Nodemailer 4.1.0 发布,Node.js 邮件发送组件

Nodemailer 4.1.0 已发布,该版本添加了新的方法 和 来使用 https://ethereal.email/ 中的自动生成的电子邮件帐户。 Nodemailer 是一个简单易用的 Node.JS 邮件发送模块(通过 SMTP,sendmai...

王练
2017/08/29
514
0
Cacti 插件的使用 thold 邮件报警

一. monitor 用于监控主机的状态,是否Down机等 1. 设置 在添加设备的时候,选中 "monitor Host " 即为添加monitor 监控主机状态。 在 "设置"-> MISC 中,有关monitor 的设置项为: Alarm So...

心心
2012/11/15
0
0
Python核心编程:第17章 网络客户端编程

17.1 什么是因特网客户端 把因特网简化为一个数据交换中心,数据交换的参与者是一个服务提供者和一个服务的使用者。 FTP/NNTP/POP3 17.2 文件传输 文件传输协议(File Transfer Protocol)F...

finndai
2016/12/05
6
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

shell及python脚本方式登录服务器

一、问题 在工作过程中,经常会遇见需要登录服务器,并且因为安全的原因,需要使用交互的方式登录,而且shell、python在工作中也经常用到,并且可以提供交互的功能。都是利用了expect、spawn...

yangjianzhou
10分钟前
0
0
upstream sent too big header while reading...

nginx 报错:1736 upstream sent too big header while reading response header from upstream 1. 一般处理 location ~ \.php$ { #增加下面两句 fastcgi_buffer_size 128k; ......

dubox
21分钟前
0
0
Python解析配置文件模块:ConfigPhaser

import configparser as pa# [SectionA]# a = aa# b = bb# c = cc# [SectionB]# optionint = 1# optionfloat = 1.1# optionstring = string#https://www.cnblogs.com/a......

易野
28分钟前
0
0
Java基础——面向对象

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 Object的方法: clone() Object 克隆 to Strin...

凯哥学堂
29分钟前
0
0
rabbitmq学习记录(八)消息发布确认机制

RabbitMQ服务器崩了导致的消息数据丢失,已经持久化的消息数据我们可以通过消息持久化来预防。但是,如果消息从生产者发送到vhosts过程中出现了问题,持久化消息数据的方案就无效了。 Rabbit...

人觉非常君
34分钟前
0
0
毕业5年,我是怎么成为年薪30W的运维工程师

#转载# 我在大学读的是计算机专业,但大学毕业之后,进入到一家私企进行工作,工作的内容类似于网管,会经常的去修电脑,去做水晶头等内容。刚开始工作,也没想太多,最想的是丰富自己的工作...

Py爱好
41分钟前
1
0
大数据基础知识,大数据学习,涉及的知识点

一、什么是大数据 一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流 转、多样的数据类型和价值密度低四大特征。...

董黎明
56分钟前
0
0
Linux CentOS 7上安装极点五笔

话说几天前在新买的惠普笔记本上成功地安装了Linux CentOS 7操作系统、Nvidia Quandro P600驱动程序及X Window,并在VMware下安装Red Hat教学环境,彻底跳出Windows的苦海,但仍然有一件事不...

大别阿郎
今天
17
0
2018年7月20日集群课程

一、集群介绍 集群,简单地说是指一组(若干个)相互独立的计算机,利用高速通信网络组成一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器。 ...

人在艹木中
今天
0
0
spark开发机中调试snappy

目的 在Idea中的点击运行,使spark可以直接读取snappy 自己编译hadoop,以支持snappy的压缩。 自己编译的目的就是要得到支持snappy文件读写的动态链接库。如果可以在网上下载,可以跳过自行编...

benny周
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部