邮件smtp 点对点php smtp发送邮件具体是什么意思?

邮件中继_百度百科
本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来吧!
海外邮件中继转发服务(SMTP Relay Service)指在不改变用户邮件地址(发件人)的前提下,将用户邮件通过全球多链路Smtp邮件转发服务器投递到收件人邮件服务器,实现全球邮件投递,中继配置非常简单,只需在邮件系统上配置,一分钟就可以生效,例如微软的,只需要加一条集线器传输命令。
邮件中继什么是邮件中继:
邮件中继( Relay Service)指在不改变用户邮件地址(发件人)的前提下,将用户邮件通过多链路邮件转发服务器投递到收件人邮件服务器。
邮件中继邮件中继的作用:
邮件中继主要是为了解决邮件外发退信问题,主要针对自建邮件系统,例如,,,,Icewap,等,例如邮件系统外发遭遇大量的退信,IP被加入了黑名单里面,可以利用Exchange本身具备的邮件中继功能,通过其他邮件主机转发的形式,解决邮件退信问题。
邮件中继海外邮件中继平台优势:
一、实时提供滥用账号检测功能,及时通知管理员。  二、每天提供外发报表,方便了解每日外发状况。  三、实时检查垃圾邮件,保证邮件服务器安全。  四、Linux平台高效处理邮件,保证邮件即时投递。
邮件中继Exchange2003配置中继:
打开Exchange系统管理器-&点击管理组-&第一个管理组-&路由器-&第一个路由器-&连接器-&右键新建新的连接器-&“将通过次连接器的所有邮件转发到下列智能主机”-&输入时代电邮提供的SMTP服务器名称-&添加本地桥头-&选择地址空间卡:服务器:*****.*****.***-&地址空间添加-&输入 通配符*。
邮件中继电子邮件发送问题:
1.RBL(实时拦截黑名单)割裂邮件服务器和海外通信
2.国际出口存在问题,海外TCP连接失败概率高
3.IP地址未设置反向解析设置,或者被列入动态IP池
4.邮件服务器设置和域名解析记录设置未按RFC国际标准
邮件中继邮件中继针对客户:
1.大型外贸公司。
2.外资企业。
3.大型集团公司。
4.物流行业。
邮件中继邮件中继运营商解决退信:
现有绝大部分邮件运营商面对此问题都束手无策或建议用户采用将邮件正文的内容拷贝到WORD文档中并压缩为RAR或ZIP文件后,以附件的形式发送。但此方式仍然无法解决海外邮件发送及退信问题,因为国际出口问题,很多信件虽然采用压缩方式发送但是在发送邮件内容之前,就被拦截了。
所有海外邮件投递问题的解决,无论是接收还是发送,都必须在物理上建立海外服务器的方式,并且在海外服务器和国内之间的传输上,采取加密措施,从而规避国际出口问题。如果无物理上的海外服务器,或者是没有有效加密邮件传输技术的,从根本上,都无法解决海外邮件传输问题。运营商提供海外服务器和邮件加密传输技术,真正全面有效的为用户解决海外转发问题
邮件中继邮件中继商优势:
电子邮件中继转发服务优势:
1) SMTP中继服务提供了安全,快速,可靠,经济的电子邮件传送平台;
A:优化传输路径,自动路由传输邮件;
B:无需手工调节路径,提供默认路径,但是可以自定义邮件传输路径;也直接试用海外服务器转发地址,方便快捷;
C:提供备用转发服务器地址,让您的服务器自由选择中继服务器地址,提供多重保障。
3)可以与任何邮件系统集成:
A:Windows平台: Exchange,Domino,Mdaemon,Winmail等邮件系统
B:Linux平台:Postfix,Qmail,Magicmail,Coremail,等等邮件系统
4 )服务器全天候在线正常运行时间保证
5)并可以自定义邮件端口传输,以避免ISP的限制
6)所有的IP地址均做地址反向解析服务
7)支持静态或动态IP(DSL,FiOS光纤,电缆等)
8)同时支持入站和出站TLS(传输层安全)信息加密
邮件中继服务支持SSL/TLS加密传输协议。
9)支持DomainKey / DKIM签名
10)支持SPF记录 ,
11)ISP反馈的通知
12)提供邮件转发日志记录和故障日志的查询服务
13)邮件服务器也可以基于身份验证登录/密码,提供电子邮件的转发验证
14)还提供基于IP的认证,允许所有的电子邮件从您选择的IP中继通过电邮 来没有任何身份验证的邮件服务器。电邮不施加任何限制
15)完全解决海外办事处和分公司链接您本地邮件服务器速度慢的问题,提供海外服务器邮件中继服务
企业信用信息自由、创新、研究、探索
Linux/Windows Mono/DotNet [ Open Source .NET Development/ 使用开源工具进行DotNet软件开发]锐意进取,志存高远.成就梦想,只争朝夕.从你开始,创新世界.【That I exist is a perpetual supprise which is life. Focus on eCommerce】
做多了网站平台,系统的人,都会或多或少遇到需要发送邮件这样的需求.
前几天在做一个企业黄页平台,也用到了邮件发送这一块.
但是担心有分站,又不想把SMTP直接写进code里,这样,修改起来太麻烦了
有的都是放在数据库里
但是,数据库里配置SMTP又有一点大材小用了
有多少人的网站会有多个SMTP服务器呢?
后来用了web.config里面的自定义配置节.分享一下我的实现方式
首先,在web.config\configuration\configSections增加一个自定义配置节的声明。
1&&section&name="Smtp"&type="SmSoft.Smtp.SmtpSectionConfig,SmSoft.Smtp"/&
然后,我们去web.config\configuration增加这个自定义配置声明的具体实现参数。
1&&Smtp&2&&&&&&Default&3&&&&&&&SiteName="企业黄页"&4&&&&&&&Server=""&5&&&&&&&Username=""&6&&&&&&&Password=""&7&&&&&&&SSL="False"&8&&&&&&&Port="25"/&9&&&&/Smtp&
我们在项目里建立一个叫SmtpSectionConfig的类
&别忘记,我们先把System.Configuration这个程序集引用进来。
然后才能引用它的命名空间
&1&using&System.C&2&namespace&SmSoft.Smtp&3&{&4&&&&&public&class&SmtpSectionConfig&:&ConfigurationSection&5&&&&&{&6&&&&&&&&&[ConfigurationProperty("Default")]&7&&&&&&&&&public&DefaultSmtp&Default&&8&&&&&&&&&{&9&&&&&&&&&&&&&get10&&&&&&&&&&&&&{11&&&&&&&&&&&&&&&&&return&(DefaultSmtp)this["Default"];12&&&&&&&&&&&&&}13&&&&&&&&&14&&&&&&&&&}15&16&&&&&&&&&//可以增加几个其它用处的smtp17&&&&&}18&}
&有人要问了,DefaultSmtp&它是什么?
我们需要为具体的Smtp增加一个配置元素
我们现在就增加一个DefaultSmtp类
&&1&namespace&SmSoft.Smtp&&2&{&&3&&&&&public&class&DefaultSmtp&:&ConfigurationElement&&4&&&&&{&&5&&&&&&&&&public&DefaultSmtp()&&6&&&&&&&&&&&&&:&base()&&7&&&&&&&&&{&&8&&&&&&&&&&&&&this._Initialized&=&false;&&9&&&&&&&&&}&10&&11&&&&&&&&&[ConfigurationProperty("SiteName")]&12&&&&&&&&&public&string&SiteName&13&&&&&&&&&{&14&&&&&&&&&&&&&get&15&&&&&&&&&&&&&{&16&&&&&&&&&&&&&&&&&var&o&=&this["SiteName"];&17&&&&&&&&&&&&&&&&&if&(o&!=&null)&18&&&&&&&&&&&&&&&&&&&&&return&o.ToString();&19&&&&&&&&&&&&&&&&&else&20&&&&&&&&&&&&&&&&&&&&&return&string.E&21&&&&&&&&&&&&&}&22&&&&&&&&&}&23&&24&&&&&&&&&[ConfigurationProperty("Server")]&25&&&&&&&&&public&string&Server&26&&&&&&&&&{&27&&&&&&&&&&&&&get&28&&&&&&&&&&&&&{&29&&&&&&&&&&&&&&&&&var&o&=&this["Server"];&30&&&&&&&&&&&&&&&&&if&(o&!=&null)&31&&&&&&&&&&&&&&&&&&&&&return&o.ToString();&32&&&&&&&&&&&&&&&&&else&33&&&&&&&&&&&&&&&&&&&&&return&string.E&34&&&&&&&&&&&&&}&35&&&&&&&&&}&36&&37&&&&&&&&&[ConfigurationProperty("Username")]&38&&&&&&&&&public&string&Username&&39&&&&&&&&&{&40&&&&&&&&&&&&&get&41&&&&&&&&&&&&&{&42&&&&&&&&&&&&&&&&&var&o&=&this["Username"];&43&&&&&&&&&&&&&&&&&if&(o&!=&null)&44&&&&&&&&&&&&&&&&&&&&&return&o.ToString();&45&&&&&&&&&&&&&&&&&else&46&&&&&&&&&&&&&&&&&&&&&return&string.E&47&&&&&&&&&&&&&}&48&&&&&&&&&}&49&&50&&&&&&&&&[ConfigurationProperty("Password")]&51&&&&&&&&&public&string&Password&52&&&&&&&&&{&53&&&&&&&&&&&&&get&54&&&&&&&&&&&&&{&55&&&&&&&&&&&&&&&&&var&o&=&this["Password"];&56&&&&&&&&&&&&&&&&&if&(o&!=&null)&57&&&&&&&&&&&&&&&&&&&&&return&o.ToString();&58&&&&&&&&&&&&&&&&&else&59&&&&&&&&&&&&&&&&&&&&&return&string.E&60&&&&&&&&&&&&&}&61&&&&&&&&&}&62&&63&&&&&&&&&[ConfigurationProperty("SSL")]&64&&&&&&&&&public&bool&SSL&65&&&&&&&&&{&66&&&&&&&&&&&&&get&67&&&&&&&&&&&&&{&68&&&&&&&&&&&&&&&&&var&o&=&this["SSL"];&69&&&&&&&&&&&&&&&&&if&(o&!=&null)&70&&&&&&&&&&&&&&&&&&&&&return&o.ToString().ToLower()&==&"true";&71&&&&&&&&&&&&&&&&&else&72&&&&&&&&&&&&&&&&&&&&&return&false;&73&&&&&&&&&&&&&}&74&&&&&&&&&}&75&&76&&&&&&&&&[ConfigurationProperty("Port")]&77&&&&&&&&&public&int&Port&78&&&&&&&&&{&79&&&&&&&&&&&&&get&80&&&&&&&&&&&&&{&81&&&&&&&&&&&&&&&&&var&o&=&this["Port"];&82&&&&&&&&&&&&&&&&&var&p&=&25;&83&&&&&&&&&&&&&&&&&if&(o&==&null)&84&&&&&&&&&&&&&&&&&&&&&return&p;&85&&&&&&&&&&&&&&&&&else&86&&&&&&&&&&&&&&&&&{&87&&&&&&&&&&&&&&&&&&&&&int.TryParse(o.ToString(),&out&p);&88&&&&&&&&&&&&&&&&&&&&&return&p;&89&&&&&&&&&&&&&&&&&}&90&&&&&&&&&&&&&&&&&91&&&&&&&&&&&&&}&92&&&&&&&&&}&93&&94&&&&&&&&&private&SmtpClient&_S&95&&&&&&&&&private&Boolean&_I&96&&97&&&&&&&&&public&bool&Send(MailMessage&Msg)&98&&&&&&&&&{&99&&&&&&&&&&&&&if&(this._Initialized&==&false)100&&&&&&&&&&&&&&&&&return&false;101&&&&&&&&&&&&&this._Smtp.Send(Msg);102&&&&&&&&&&&&&return&true;103&&&&&&&&&}104&105&&&&&&&&&public&void&Init()106&&&&&&&&&{107&&&&&&&&&&&&&this._Smtp&=&new&SmtpClient(this.Server,&this.Port);108&&&&&&&&&&&&&this._Smtp.UseDefaultCredentials&=&true;109&&&&&&&&&&&&&this._Smtp.DeliveryMethod&=&SmtpDeliveryMethod.N110&&&&&&&&&&&&&this._Smtp.Credentials&=&new&NetworkCredential()111&&&&&&&&&&&&&{112&&&&&&&&&&&&&&&&&Password&=&this.Password,113&&&&&&&&&&&&&&&&&UserName&=&this.Username114&&&&&&&&&&&&&};115&&&&&&&&&&&&&this._Smtp.EnableSsl&=&this.SSL;116&&&&&&&&&&&&&this._Initialized&=&true;117&&&&&&&&&}118&&&&&}119&}
同样,因为用到了ConfigurationEelement,我们需要增加System.Configuration的引用
我们在增加一个用来发送邮件的快捷方法,就大功告成了。
&1&namespace&SmSoft.Smtp&2&{&3&&&&&public&class&MailHelper&4&&&&&{&5&&&&&&&&&private&static&DefaultSmtp&_SmtpS&6&&&&&&&&&static&MailHelper()&7&&&&&&&&&{&8&&&&&&&&&&&&&try&9&&&&&&&&&&&&&{10&&&&&&&&&&&&&&&&&var&smtp&=&(SmtpSectionConfig)ConfigurationManager.GetSection("Smtp");11&&&&&&&&&&&&&&&&&_SmtpServer&=&smtp.D12&&&&&&&&&&&&&&&&&_SmtpServer.Init();13&&&&&&&&&&&&&}14&&&&&&&&&&&&&catch15&&&&&&&&&&&&&{16&&&&&&&&&&&&&&&&&throw&new&Exception("请配置Smpt邮件发送配置节");17&&&&&&&&&&&&&}18&&&&&&&&&}19&&&&&&&&&public&static&Boolean&Send(String&Email,&String&Msg)20&&&&&&&&&{21&&&&&&&&&&&&&MailMessage&Message&=&new&MailMessage(new&MailAddress(_SmtpServer.Username,&_SmtpServer.SiteName,&Encoding.GetEncoding("UTF-8")),&new&MailAddress(Email));22&&&&&&&&&&&&&Message.Body&=&M23&&&&&&&&&&&&&Message.BodyEncoding&=&Encoding.GetEncoding("UTF-8");24&&&&&&&&&&&&&Message.IsBodyHtml&=&true;25&&&&&&&&&&&&&Message.Priority&=&MailPriority.N26&&&&&&&&&&&&&Message.Subject&=&"主题";27&&&&&&&&&&&&&Message.SubjectEncoding&=&Encoding.GetEncoding("UTF-8");28&&&&&&&&&&&&&_SmtpServer.Send(Message);29&&&&&&&&&&&&&return&true;30&31&&&&&&&&&}32&&&&&}33&}
var&smtp&=&(SmtpSectionConfig)ConfigurationManager.GetSection("Smtp");这样,就可以获取我们在web.config内配置的SMTP服务器信息了
以后发送邮件,只需要
SmSoft.Smtp.MailHelper.Send(email, content)
作者:QQ群: 出处:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
阅读(...) 评论()
随笔 - 15063
评论 - 1085使用smtp连接邮件服务器发送邮件,为什么偶尔会给一个用户重复发送邮件?
[问题点数:50分]
使用smtp连接邮件服务器发送邮件,为什么偶尔会给一个用户重复发送邮件?
[问题点数:50分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。1807人阅读
电子邮件在Internet上发送和接收其实和我们日常生活中的邮寄服务一样:当我们要寄一个包裹的时候,我们首先要找到一个有这项业务的邮局,在填写完收件人姓名、地址等信息之后,包裹就寄到了收件人所在地的邮局,那么对方取包裹的时候就必须去这个邮局才能取出。同样的,当我们发送电子邮件的时候,这封邮件是由邮件发送服务器(任何一个都可以)发出,并根据收信人的地址判断对方的邮件接收服务器而将这封信发送到该服务器上,收信人要收取邮件也只能访问这个服务器才能够完成。&
电子邮件工作原理
&&&&& 电子邮件的工作过程遵循客户-服务器模式。每份电子邮件的发送都要涉及到发送方与接收方,发送方式构成客户端,而接收方构成服务器,服务器含有众多用户的电子信箱。发送方通过邮件客户程序,将编辑好的电子邮件向邮局服务器(SMTP服务器)发送。邮局服务器识别接收者的地址,并向管理该地址的邮件服务器(POP3服务器)发送消息。邮件服务器识将消息存放在接收者的电子信箱内,并告知接收者有新邮件到来。接收者通过邮件客户程序连接到服务器后,就会看到服务器的通知,进而打开自己的电子信箱来查收邮件。
&&&& 通常Internet上的个人用户不能直接接收电子邮件,而是通过申请ISP(Internet Service Provider的缩写,意为“Internet服务提供商”)主机的一个电子信箱,由ISP主机负责电子邮件的接收。一旦有用户的电子邮件到来,ISP主机就将邮件移到用户的电子信箱内,并通知用户有新邮件。因此,当发送一条电子邮件给一另一个客户时,电子邮件首先从用户计算机发送到ISP主机,再到Internet,再到收件人的ISP主机,最后到收件人的个人计算机。
&&&&& ISP主机起着“邮局”的作用,管理着众多用户的电子信箱。每个用户的电子信箱实际上就是用户所申请的帐号名。每个用户的电子邮件信箱都要占用 ISP主机一定容量的硬盘空间,由于这一空间是有限的,因此用户要定期查收和阅读电子信箱中的邮件,以便腾出空间来接收新的邮件。
&&&&& 电子邮件在发送与接收过程中都要遵循SMTP、POP3等协议,这些协议确保了电子邮件在各种不同系统之间的传输。其中,SMTP负责电子邮件的发送,而POP3则用于接收Internet上的电子邮件。
& & & 最简单的邮件发送流程如图:
如果将这个网络分的更细一点,其具体的流程图如下:
&&&&&&&&&&&&&&&&&&&
当然在我们的实际的应用中,特别是架设比较庞大的邮件系统的时候,涉及的技术更多、更复杂,如果是多台收件服务器、多台发件服务器,就要再附加一台服务器做负载均衡。里面还要涉及防火墙、垃圾过滤一些安全问题。尽管这些不是我们平时能够的用的着的,但是了解这些还是必须的。&
ASP.net发送邮件 &&&&
&&&&& 电子邮件是最初的网络通信技术,在信息技术高速发展的今天,电子邮件已经作为一种不可或缺的通信方式深入到了企业的各个层面。最常见的就是我们熟知的bug报告、密码重置通知、申请确认等。特别是我们在从事企业软件开发的时候,常常要用到电子邮件技术。
&&&&& 而微软的ASP.NET很好的将其进行了封装,使得发送电子邮件十分便捷。在.net框架1.x版本中ystem.Web.Mail已经实现了这一点。但是其通过的是第三方控件实现的,具体的代码会在后面介绍。在后来的2.0版本已经将其很好的封装在System.Net.Mail中,在这里面有最核心的两个类,即MailMessage和SmtpClient。&
&&&&& · MailMessage:描述一个电子邮件消息;它拥有From,To,Subject,Body,Attachments等属性;
&&&&& · SmtpClient:把一个指定的MailMessage实例发送到一个指定的SMTP服务器。
&&& & 我们只要将对象的属性赋值,就能顺利发送一封电子邮件了。流程图如下:
&&&& & & & & & & & && &&
&&&&&注意:在邮件发送的过程中会产生异常,比较常见的就是SmtpException,所以发送一定要进行try,catch操作,捕捉可能出现的异常。
初始化MailMessage实例:
/// &summary&
/// 邮件初始化
/// 为了简单,自己发个自己
/// &/summary&
/// &returns&&/returns&
public MailMessage InitMail(string Address)
MailMessage mail = new MailMessage();
mail.From = new MailAddress(Address);
mail.To.Add(new MailAddress(Address));
mail.Subject = &ASP.NET send mail testing!&;
mail.Body = &Welcome to join us,let me instruduce myself!&;
//邮件主题和正文编码格式
mail.SubjectEncoding = System.Text.Encoding.UTF8;
mail.BodyEncoding = System.Text.Encoding.UTF8;
//邮件正文是Html编码
mail.IsBodyHtml =
mail.Priority = MailPriority.H
//密件抄送收件人
mail.Bcc.Add(Address);
//抄送收件人
mail.CC.Add(Address);
//添加附件
mail.Attachments.Add(new Attachment(&d:\\1.txt&));
mail.Attachments.Add(new Attachment(&d:\\2.txt&));
mail.Attachments.Add(new Attachment(&d:\\3.txt&));
发送Gmail邮件。端口号为25、587成功。
/// &summary&
/// 发送Gmail
/// &/summary&
public bool SendGmail()
SmtpClient client = new SmtpClient();
client.Credentials = new System.Net.NetworkCredential(&userName&, &password&);
//上述写你的GMail邮箱和密码
client.Port = 587;//Gmail使用的端口
client.Host = &&;
client.EnableSsl =//经过ssl加密
client.Send(InitMail(&&));
catch (System.Net.Mail.SmtpException ex)
.net框架1.x版本中的发送电子邮件源码
public bool sendMail(string sender, string receiver, string title, string content)
MailMessage mail = new MailMessage();
mail.From =
mail.Body =
mail.Subject =
mail.Fields.Add(&/cdo/configuration/smtpauthenticate&, 1);
mail.Fields.Add(&/cdo/configuration/sendusername&, &username&); //发送方邮件帐户
mail.Fields.Add(&/cdo/configuration/sendpassword&, &passw&); //发送方邮件密码
SmtpMail.SmtpServer = &smtp.& + sender.Substring(sender.IndexOf(&@&) + 1);
SmtpMail.Send(mail);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:417740次
积分:3960
积分:3960
排名:第5758名
原创:67篇
转载:26篇
评论:108条
(3)(4)(1)(1)(1)(1)(1)(1)(1)(1)(2)(1)(4)(1)(1)(1)(2)(2)(1)(1)(5)(15)(3)(1)(6)(2)(9)(2)(1)(1)(9)(13)

我要回帖

更多关于 c smtp 发送邮件 的文章

 

随机推荐