python 终止程序程序里面已创建列表副本,最后列表打印出来还是被改变了,问题出在哪

随笔 - 275
评论 - 2431用php发送有附件的电子邮件_邮件服务器-虚拟主机资讯|虚拟主机动态
产品服务快速通道
----------------
==域名注册==
英文域名注册
中文域名注册
==网站推广==
==虚拟主机==
----------------
双线路虚拟主机
基本型虚拟主机
商用型虚拟主机
论坛型虚拟主机
功能型虚拟主机
Vip合租虚拟主机
虚拟主机性能对比
虚拟主机免费试用
机房速度测试
----------------
==租用托管==
服务器租用
----------------
==企业邮局==
购买企业邮局
----------------
==付款方式==
----------------
==联系我们==
您当前位置:->->
用php发送有附件的电子邮件_邮件服务器
作者:网友供稿
  西部数码-全国虚拟主机10强!20余项管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:&
我经常听到这样一个问题:"我有一个从网站发来的合同。我如何给通过表单发送的电子邮件增加一个附件呢?" 首先我要说的是要做到这个没有什么简单的办法。你要很好的理解PHP或其它的服务器端的脚本语言。当然你还要一个真正支持PHP的网站的账号。如果满足了这个前提,在你读完了本章后就可以用PHP发送带附件的电子邮件了。 1. 附件是如何工作的 如果你曾经在PHP的手册中搜索过"附件"函数,那么结果可能是什么都没有(至少在我写本文的时间还没有)。后来你就要花很多时间来了解这方面的知识。 你也许会想当你给某个人发送一封带附件的电子邮件时,附件是和邮件一起放到收件人的信箱里的(比如,如果你给他/她发了一个PNG的图片文件,他/她的信箱里会包含一个txt文件(电子邮件)和一个.png文件(附件))。但这不是它的工作原理。当你加入一个附件时,你的邮件程序把附件转换成纯文本文件,并在你写的内容(实际的电子邮件)后面插入这个文本块。这个,当你把所有的东西发出来后,收件人的信箱里只有一个纯文本文件--一个同时包含附件和实际电子邮件内容的文件。 下面是一个带附件(一个HTML文件)电子邮件的例子。我已经标注了其中重要的几行: Return-Path:
Date: Mon, 22 May :29 +0000 From: Someone
To: Person
Message-id:
Content-type: multipart/ boundary="396d983d6b89a" Subject: Heres the subject --396d983d6b89a Content-type: text/ charset=iso-8859-1 Content-transfer-encoding: 8bit This is the body of the email. --396d983d6b89a Content-type: text/ name=attachment.html Content-disposition: filename=attachment.html Content-transfer-encoding: 8bit
The attachment
This is the attached HTML file
--396d983d6b89a--
前面的7行是邮件的头,其中值得注意的是Content-type头部分。这个头告诉邮件程序电子邮件是由一个以上的部分组成的。不含附件的邮件只有一个部分:消息本身。带附件的电子通常至少由两部分组成:消息和附件。这样,带两个附件的邮件由三部分组成:消息,第一个附件和第二个附件。 带附件的电子邮件的不同部分之间用分界线来分隔。分界线在Content-type头中定义。邮件的每个新部分以两个连字号(--)和分界线开始。最后一个分界线后也有两个连字号,表示这个邮件中没有其它的部分了。 在每个分界线后有一些行,用来告诉邮件程序这个部分的内容的类型。比如,看看上面例子中第一个分界线后面的两行--以Content-type: text/plain开头的行。这些行说明后面的部分是ISO-8859-1字符集的纯文本。跟在第二个分界线后的行告诉邮件程序现在的部分是一个 HTML文件,它的名字是"attachment.html"。 Content-disposition 这持告诉邮件程序如果可能就以内嵌的方式显示附件。现在新的邮件程序会在消息后显示HTML的内容。如果Content-disposition被设为 attachment,那么邮件程序就不会显示HTML文件的内容,而是显示一个连接到文件的图标(或其它的类似的东西)。收件人要看附件的内容,必须点击这个图标。一般情况下,如果附件是一些文本(包含HTML),Content-disposition会被设为inline,这是因为现在大部分邮件程序能够不借助其它浏览器而直接显示附件(文本)的内容。如果附件不是文本(比如图片或其它类似的内容),Content-disposition就设为 attachment。 2. 用PHP生成带附件的电子邮件 这里一个例子,告诉你如果把一个定义好的HTML文件加为邮件的附件: <?php # 我们首先写实际的消息内容 $emailBody = "This is text that goes into the body of the email."; # 然后我们要作为附件的HTML文件 $attachment = "
The attached file
This is the attached HTML file
"; # 建立在邮件中分隔不同部分的分界线。 # 基本上,分界线可以是任意的字符串。 # 但是重要的一点是确定一个写邮件的人 # 这会随意写出的字符串,所以我们用 # uniqid函数来产生一个随机的字符串。 $boundary = uniqid( ""); # 现在我们要建立邮件头。不要忘了插入 # Content-type头来说明这个邮件包含一个或更多的附件。 $headers = "From:
Content-type: multipart/ boundary=\"$boundary\""; # 好,现在我们已经有了邮件的所有内容。 # 下一件事是修改邮件的主体。 $emailBody = "--$boundary Content-type: text/ charset=iso-8859-1 Content-transfer-encoding: 8bit $emailBody --$boundary Content-type: text/ name=attachment.html Content-disposition: filename=attachment.html Content-transfer-encoding: 8bit $attachment --$boundary--"; # 现在可以把邮件发出去了 mail( "person@eksempel.dk", "The subject", $emailBody, $headers); ?>
3. 把用户上传的文件作为附件 你也许会觉得上面的例子难以理解,但下面...。在下面的例子中事情更难了,因为我们要用一个表单让用户上传他们的文件,并把这个文件作为我们要发的邮件的附件。麻烦的是我们不能预先知道文件的MIME类型。在前面的例子中,我们已经知道该它是一个HTML文件,所以给这个附件设置Content-type 头是很简单的。在下面的例子中,MIME类型可能是任意的,因为用户可能会上传一个HTML文件,一个PNG文件,一个vCard文件,或者其它的东西。让我们来看看例子: <?php # 现在我们来生成表单。在产生可以上传文件的表单时, # 不要忘了把标签的"enctype"属性设为"multipart/form-data". echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; # 如果用户已经按了"Send"按钮" if ($send) { # 定义分界线 $boundary = uniqid( ""); # 生成邮件头 $headers = "From: $from Content-type: multipart/ boundary=\"$boundary\""; # 确定上传文件的MIME类型 if ($attachment_type) $mimeType = $attachment_ # 如果浏览器没有指定文件的MIME类型, # 我们可以把它设为"application/unknown". else $mimeType = "application/unknown"; # 确定文件的名字 $fileName = $attachment_ # 打开文件 $fp = fopen($attachment, "r"); # 把整个文件读入一个变量 $read = fread($fp, filesize($attachment)); # 好,现在变量$read中保存的是包含整个文件内容的文本块。 # 现在我们要把这个文本块转换成邮件程序可以读懂的格式 # 我们用base64方法把它编码 $read = base64_encode($read); # 现在我们有一个用base64方法编码的长字符串。 # 下一件事是要把这个长字符串切成由每行76个字符组成的小块 $read = chunk_split($read); # 现在我们可以建立邮件的主体 $body = "--$boundary Content-type: text/ charset=iso-8859-1 Content-transfer-encoding: 8bit $body --$boundary Content-type: $mimeT name=$fileName Content-disposition: filename=$fileName Content-transfer-encoding: base64 $read --$boundary--"; # 发送邮件 mail($to, $subject, $body, $headers); } ?> 这就是全部内容。如果你不能很好地理解上面的例子,我的建议是给你自己发送几个带附件的邮件,然后仔细研究邮件的源代码。 ,
文章整理:西部数码--专业提供、服务
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
文章页数:&
??????????
??????????
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
版权所有 西部数码()
CopyRight (c) 2002~ all right reserved.
公司地址:四川省成都市金牛区一环路北一段99号环球广场24楼 邮编:610031
电话总机:028-08 38
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028- 财务QQ:
售前咨询QQ:2182518
售后服务QQ:关于启用新邮件服务器的通知.doc__word文档免费下载_服务器硬盘
相关Word文档:
Word文档搜索:
关于启用新邮件服务器的通知_服务器硬盘
【Word文档《关于启用新邮件服务器的通知》正文文本内容概要:】Doc格式word文档免费下载地址见本文末页
【Word文档《关于启用新邮件服务器的通知 》前1500字摘要】
关于启用新邮件服务器的通知(第二轮)全所网络用户:新邮件服务器将于日中午12时正式启用,新邮件服务器给每位用户分配的邮箱大小为200MB,网络硬盘功能待规章制度明确以后再分配使用。用户可以采用两种方式登录所邮件系统:1、WEB方式(不需要任何设置,推荐使用)用户登录地址http://pop3..sixxs.org。对应IP地址为:所内――172.16.70.70所外――159.226.228.6登录用户名:与老邮件服务器相同初始密码:test123更改密码的方法:登录邮件服务器――〉个性化设置――〉密码管理,进行更改。第一轮通知以后已经更改过密码的用户,请使用自行更改后的密码登录。2、传统方式(pop方式)使用目前方式(客户端软件如outlook、foxmail)收发邮件,收发邮件的客户端设置不变。具体设置如下:接收邮件:pop3.发送邮件:smtp.同时在“发送邮件服务器”的设置项中将“我的服务器需要身份认证”对勾选中。如下图:老邮件服务器IP地址将变更为172.16.70.101,保留期限为一年。必须选中这个对勾,否则您将只能接收邮件而不能发送邮件。...余下略,更多内容请下载word文档查看。
【word文档《关于启用新邮件服务器的通知 》DOC格式下载地址】
如本word文档无法正常下载,请检查浏览器弹出窗口设置;或直接鼠标右键菜单选择“另存为”。后缀为doc格式的word文档可用word97、word2003、word2007、word2010、wps等浏览;
后缀为docx、pptx、xlsx等格式的office文档可用word2007以上版本浏览,word2003及以下版本需安装Microsoft Office Word、Excel 和 PowerPoint文件格式兼容包FileFormatConverters.exe。
转载本word文档请注明出处:
如本word文档无法正常下载,请检查浏览器弹出窗口设置;或鼠标右键菜单选择“另存为”。后缀为doc格式的word文档可用word97、word2003、word2007、word2010、wps等浏览;
后缀为docx、pptx、xlsx等格式的office文档可用word2007以上版本浏览,word2003及以下版本需安装Microsoft Office Word、Excel 和 PowerPoint文件格式兼容包FileFormatConverters.exe。
全站word文档tags
相关word文档免费下载法律声明:本站只提供信息交流平台,交易者自行分辨真假,如有损失,本站概不负责。
哈哈IT网-渠道平台 & Copyright 2008- 豫ICP备号 增值电信业务经营许可证 豫B2-配置DNS支持邮件服务器域名解析,支持别名,反向查找区
配置DNS支持邮件服务器域名解析,支持别名,反向查找区
  2.1 其他的记录类型  在正向查找区,可以添加邮件交换记录(MX)来支持邮件服务器解析。  2.1.1 创建邮件交换(MX)记录  邮件交换(MX,Mail Exchange)记录用于指出某个DNS区域中的邮件服务器的主机名(A记录),它相当于一个指针,因此在创建MX记录之前,你必须已经为邮件服务器创建了A记录;你可以针对相同的DNS域配置多个MX记录,但是邮件服务器优先级数值越低的MX记录具有越高的优先级。  首先了解一下邮件的传送过程,例如我现在通过这个邮箱向邮箱发送邮件,那么完整的邮件传送过程如下:    1. 邮件客户端连接到域的邮件服务器mai(当然,连接的形式是多样化的,可以使用SMTP,也可以使用Web Mail等),然后告诉mai,说有一封邮件要发送至;如果mai允许这种行为,那么,邮件客户端将完整的邮件信息发送给mai,此时,邮件客户端将会提示用户邮件发送成功,注意,这仅仅代表从本地到你的邮件服务器发送成功,并不代表对方成功接收到你发送的邮件。  向自己的DNS服务器发起MX记录查询请求,查询目的邮件域的MX记录:  3. 查询到单个MX记录指向某个邮件服务器主机,例如MX记录指向邮件服务器的主机mai,则连接此邮件服务器。  注意:如果具有多个MX记录指向不同的邮件服务器主机,则按照优先级顺序从高到低进行连接,直到连接成功为止。  如果没有查询到MX记录,根据邮件服务器配置的不同,mai的行为可以分为以下两种:  ? 终止邮件发送,返回给用户邮件发送失败信息。  ? 查询邮件域名(在此是)的A记录,然后连接对应的主机。这就是为什么有时就算没有MX记录也能接收到邮件的原因,但是,这不是标准的行为,并且只有部分邮件服务器支持这种行为。  连接对应的邮件服务器,例如mai,然后发送邮件信息。如果连接不成功,mai会按照一定的时间间隔进行重试,直到某个时间周期为止(通常为1天),此时,如果邮件仍然发送不成功,邮件服务器将终止邮件发送并向发送邮件的用户报告邮件发送失败,而有些比较高级的邮件服务器支持在一定时间周期内(例如30分钟)邮件发送不成功就报告用户;如果连接成功但是被对方邮件服务器因为某种原因拒绝,例如认为mai是垃圾邮件服务器或者发送到的邮箱不存在等等,那么mai会立即向发送邮件的用户报告邮件发送失败并告知原因;如果连接成功并且邮件发送成功,mai通常不会再次通知发送邮件的用户。  5. someone@ 用户使用客户端接受邮件。  配置DNS支持以上的电子邮件服务器  首先,针对邮件服务器主机名创建一个A记录mai,在DNS管理控制台中展开对应的区域,然后右击域,点击“创建主机”,在新建主机对话,输入名称mail和IP地址20.12.3.2,点击“添加主机”。在区域下创建主机记录mail IP地址为21.23.2.2。            在客户端测试邮件交换记录解析  在Sales计算机上配置本地连接TCP/IP属性首选DNS服务器为10.7.10.50。  在命令提示符下,输入nslookup,默认解析的记录类型是A记录,输入set type=mx,将类型更改为邮件交换类型,然后输入测试该域名下的邮件服务器的地址解析,输入测试该域名下的邮件服务器的地址解析。您将会发现能正确解析出相应的IP地址。  要想将解析的记录类型更改为A记录,需要输入set type=A。    2.1.2 使用别名  CNAME资源记录是引用了另一个主机名的主机名称。一般情况下,别名会起一个比较容易记忆的名称。CNAME资源记录负责把别名和标准主机名称之间的名称解析。这些记录允许你使用多个名称指向单个主机,使得某些任务更容易执行。  通常,多台计算机执行统一任务的时候,需要对外统一名称时候,经常会使用别名记录,例如,一台主机 pageserve可以起别名为,CNAME记录负责在二者之间解析。  比如在名称空间下邮件服务器为Mail,发送邮件服务器为SMTP和接受邮件的服务器pop3是同一个邮件服务器Mail。可在名称空间下添加别名SMTP和Pop3指向Mail记录。    点击域,可以看到添加的smtp和pop3别名对应的不是IP地址,而是指向了mai主机记录。  在Sales计算机上在命令提示符下,输入nslookup,测试smt和pop域名解析,可以解析出IP地址以及该IP地址对应的主机记录。输入百度域名,可以看到我们平时访问的网站是通过别名访问的。。    2.1.3 创建和配置反向查找区域  在内网有些场景也许需要将计算机的全称解析到IP地址。这种应用场景并不多见,但是有可能用到。  以下步骤示例展现创建反向查找区域的过程以及添加PTR记录的过程,并在客户端测试反向解析。  步骤:  6. 打开DNS工具,右击“反向查找区域”,点击“创建区域”。  7. 在出现的欢迎使用新建区域向导对话框,点击“下一步”。    8. 在区域类型对话框,选择“主要区域”,点击“下一步”。  9. 在反向查找区域名称对话框,选择“IPv4反向查找区域”,点击“下一步”。    10. 在反向查找区域名称对话框,选择网络ID,输入10.7.10,点击“下一步”。  11. 在区域文件对话框,选择“创建新文件,文件名为”,保持默认名称,点击“下一步”。    12. 在动态更新对话框,选中“不允许动态更新”,点击“下一步”。  13. 在正在完成新建区域向导对话框,点击“完成”。    14. 右击“10.7.10”区域,点击“新建指针(PTR)”。  15. 在出现的新建资源记录对话框,主机输入50,主机名输入DNSServe,点击“确定”。    16. 在Sales计算机上命令行提示符下输入nslookup。  17. 输入10.7.10.50,可以看到能够解析出来域名DNSServe。    
H3C认证Java认证Oracle认证
基础英语软考英语项目管理英语职场英语
.NETPowerBuilderWeb开发游戏开发Perl
二级模拟试题一级模拟试题一级考试经验四级考试资料
软件测试软件外包系统分析与建模敏捷开发
法律法规历年试题软考英语网络管理员系统架构设计师信息系统监理师
高级通信工程师考试大纲设备环境综合能力
路由技术网络存储无线网络网络设备
CPMP考试prince2认证项目范围管理项目配置管理项目管理案例项目经理项目干系人管理
职称考试题目
招生信息考研政治
网络安全安全设置工具使用手机安全
生物识别传感器物联网传输层物联网前沿技术物联网案例分析
Java核心技术J2ME教程
Linux系统管理Linux编程Linux安全AIX教程
Windows系统管理Windows教程Windows网络管理Windows故障
数据库开发Sybase数据库Informix数据库
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&

我要回帖

更多关于 python创建窗口程序 的文章

 

随机推荐