社区
基础编程
帖子详情
=========PHP发EMAIL问题.==========在线等待
cnpr
2003-02-27 11:31:11
用PHP怎么发送EMAIL...............
请高手指点...............
在线等待.............
...全文
56
23
打赏
收藏
=========PHP发EMAIL问题.==========在线等待
用PHP怎么发送EMAIL............... 请高手指点............... 在线等待.............
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cnpr
2003-09-28
打赏
举报
回复
是呀。还不行
xizi2002
2003-07-26
打赏
举报
回复
还不行?又顶上来了
cnpr
2003-07-26
打赏
举报
回复
up
cnpr
2003-06-27
打赏
举报
回复
...............
LeeMaRS
2003-06-27
打赏
举报
回复
[mail function]
; For Win32 only.
SMTP = localhost
; 修改这里就行了.
; For Win32 only.
sendmail_from = me@localhost.com
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =
多菜鸟
2003-06-11
打赏
举报
回复
呵呵,一句话的问题带出这么多的好东东,真是不错。
星期八的就可以了嘛,哈哈哈哈!!
yifengling0
2003-06-11
打赏
举报
回复
up
cnpr
2003-06-11
打赏
举报
回复
re LeeMaRS:
哪里有???我找了好久
rainsky_2008
2003-06-10
打赏
举报
回复
你的系统是linux/unix还是winsows啊
给你提供几个类吧。
http://www.phpe.net/?n=Classes&t=12
应该是比较全了
LeeMaRS
2003-06-10
打赏
举报
回复
在php.ini中搜索SMTP, 就会看到一个选项, 把你找到的不用验证的SMTP服务器填上即可
cnpr
2003-06-10
打赏
举报
回复
谁有配置好的INI呀。给我一份!
cnnps@21cn.com
xqi8
2003-05-20
打赏
举报
回复
要先配好mail服务器,以及php.ini,
cnpr
2003-05-20
打赏
举报
回复
这个函数我知道。可是发送时告诉server错误。。。怎么解决。
xqi8
2003-05-20
打赏
举报
回复
mail($to, $subject, $body, $headers);
cnpr
2003-05-20
打赏
举报
回复
把INI复制一份给我。好吗?
tmj
2003-03-01
打赏
举报
回复
up
bagongsh
2003-03-01
打赏
举报
回复
对
cnpr
2003-02-27
打赏
举报
回复
mail无法使用这个函数呀.在使用之前需要设置什么吗?
rengs
2003-02-27
打赏
举报
回复
包括怎样发带有附件的邮件都教你啦
用PHP发送有附件的电子邮件
本文出自:http://www.gouhuo.com 作者: (2001-07-23 13:00:00)
我经常听到这样一个问题:"我有一个从网站发来的合同。我如何给通过表单发送的电子邮件增加一个附件呢?"
首先我要说的是要做到这个没有什么简单的办法。你要很好的理解PHP或其它的服务器端的脚本语言。当然你还要一个真正支持PHP的网站的账号。如果满足了这个前提,在你读完了本章后就可以用PHP发送带附件的电子邮件了。
1. 附件是如何工作的
如果你曾经在PHP的手册中搜索过"附件"函数,那么结果可能是什么都没有(至少在我写本文的时间还没有)。后来你就要花很多时间来了解这方面的知识。
你也许会想当你给某个人发送一封带附件的电子邮件时,附件是和邮件一起放到收件人的信箱里的(比如,如果你给他/她发了一个PNG的图片文件,他/她的信箱里会包含一个txt文件(电子邮件)和一个.png文件(附件))。但这不是它的工作原理。当你加入一个附件时,你的邮件程序把附件转换成纯文本文件,并在你写的内容(实际的电子邮件)后面插入这个文本块。这个,当你把所有的东西发出来后,收件人的信箱里只有一个纯文本文件--一个同时包含附件和实际电子邮件内容的文件。
下面是一个带附件(一个HTML文件)电子邮件的例子。我已经标注了其中重要的几行:
Return-Path: <someone@example.com>
Date: Mon, 22 May 2000 19:17:29 +0000
From: Someone <someone@example.com>
To: Person <person@eksempel.dk>
Message-id: <83729KI93LI9214@example.com>
Content-type: multipart/mixed; boundary="396d983d6b89a"
Subject: Here's the subject
--396d983d6b89a
Content-type: text/plain; charset=iso-8859-1
Content-transfer-encoding: 8bit
This is the body of the email.
--396d983d6b89a
Content-type: text/html; name=attachment.html
Content-disposition: inline; filename=attachment.html
Content-transfer-encoding: 8bit
<html>
<head>
<title>The attachment</title>
</head>
<body>
<h2>This is the attached HTML file</h2>
</body>
</html>
--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 = "<html>
<head>
<title>The attached file</title>
</head>
<body>
<h2>This is the attached HTML file</h2>
</body>
</html>";
# 建立在邮件中分隔不同部分的分界线。
# 基本上,分界线可以是任意的字符串。
# 但是重要的一点是确定一个写邮件的人
# 这会随意写出的字符串,所以我们用
# uniqid函数来产生一个随机的字符串。
$boundary = uniqid( "");
# 现在我们要建立邮件头。不要忘了插入
# Content-type头来说明这个邮件包含一个或更多的附件。
$headers = "From: someone@example.com
Content-type: multipart/mixed; boundary=\"$boundary\"";
# 好,现在我们已经有了邮件的所有内容。
# 下一件事是修改邮件的主体。
$emailBody = "--$boundary
Content-type: text/plain; charset=iso-8859-1
Content-transfer-encoding: 8bit
$emailBody
--$boundary
Content-type: text/html; name=attachment.html
Content-disposition: inline; 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
# 现在我们来生成表单。在产生可以上传文件的表单时,
# 不要忘了把<form>标签的"enctype"属性设为"multipart/form-data".
echo "<form action='$PHP_SELF' enctype='multipart/form-data' method='post'>\n";
echo "<input type='text' name='from'><br>\n";
echo "<input type='text' name='to'><br>\n";
echo "<input type='text' name='subject'><br>\n";
echo "<input type='file' name='attachment'><br>\n";
echo "<textarea name='body'></textarea><br>\n";
echo "<input type='submit' name='send' value='Send'>\n";
echo "</form>\n";
# 如果用户已经按了"Send"按钮"
if ($send) {
# 定义分界线
$boundary = uniqid( "");
# 生成邮件头
$headers = "From: $from
Content-type: multipart/mixed; boundary=\"$boundary\"";
# 确定上传文件的MIME类型
if ($attachment_type) $mimeType = $attachment_type;
# 如果浏览器没有指定文件的MIME类型,
# 我们可以把它设为"application/unknown".
else $mimeType = "application/unknown";
# 确定文件的名字
$fileName = $attachment_name;
# 打开文件
$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/plain; charset=iso-8859-1
Content-transfer-encoding: 8bit
$body
--$boundary
Content-type: $mimeType; name=$fileName
Content-disposition: attachment; filename=$fileName
Content-transfer-encoding: base64
$read
--$boundary--";
# 发送邮件
mail($to, $subject, $body, $headers);
}
?>
这就是全部内容。如果你不能很好地理解上面的例子,我的建议是给你自己发送几个带附件的邮件,然后仔细研究邮件的源代码。
jerrythink
2003-02-27
打赏
举报
回复
你到www.google.com里面可以找到很多例子。其实用什么来做都一样,都要用到SOCKET编程,PHP就是直接用SOCKET来做的,你要熟悉SMTP协议,如果MAIL SERVER不需要你认证的话问题不大,需要认证的话步骤就要多点了。
加载更多回复(3)
Re:企业级软件安装方式:定制 rpm安装包
编译安装
Php
v5.5.32后制作成 rpm包,且重新制作 Nginx的 rpm包 06. 编译安装 MySQL 5.7.28 后制作成 rpm包,且在它机快速部署完成 07. 回顾安装软件的四种方式,总结存在优缺点 08. 编译安装 Nginx v1.10.2后制作...
javascript 技巧总结积累(正在积累中)
1.文本框焦点
问题
onBlur:当失去输入焦点后产生该事件 onFocus:当输入获得焦点后,产生该文件 Onchange:当文字值改变时,产生该事件 Onselect:当文字加亮后,产生该文件 <input type="text" value="郭强" onfocus="if(value=='郭强') {value=''}" onblur="if (value=='') {value=...
php
发
送的body,
php
– 我的联系表单
发
送空白body_messages
我是
PHP
的新手,所以请耐心
等待
.当我按提交时,我的表单正在
发
送空电子邮件.任何帮助都会很棒.这是我的表格:Namn *Företag *Epost *Skicka到目前为止,我的
PHP
代码是:$name = $_POST['name'];$company = $_POST['company'];$
email
= filter_input(INPUT_POST, '
email
', FILTER_V...
面试这块儿,都给我整的明明白白的
===============第一部分 Python基础篇(80题)=============== 1. 为什么学习Python? 是爱吗?是责任吗?都不是,是TMD穷! 2. 通过什么途径学习的Python? 大街上有人看我骨骼精奇,是万中无一的编程奇才,卖我本《21天精通Python》,然后…… 3. Python和Java、
PHP
、C、C#、C++等其他语言的对比? ...
PHP
学习5:提交表单成功后,如何弹窗“注册成功”?又如何点击弹窗的“确定”后,跳转页面?
使用<form>标签和<input type="submit">,提交表单成功后,如何弹窗“注册成功”?又如何点击弹窗的“确定”后,跳转页面? <form action="register.
php
" method="post"> <h3>注册</h3> <input type="text" class="box" placeholder="请设置您的用户名" name="username"
基础编程
21,886
社区成员
140,364
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章