2022-12-12 14:41来源:m.sf1369.com作者:宇宇
整形 int
浮点型 float
布尔型 bool(true false)
数组 array
对象 object
资源 resourse 比如利用 mysql_query(select * from table) 得到的结果就是资源
require_once(PEAR_PATH.Mail.php);//引用一个发mail的包
$conf['mail'] = array(
'host' => 'mail.abc.com', //smtp服务器地址,可以用ip地址或者域名
'auth' => true, //true表示smtp服务器需要验证,false代码不需要
'username' => 'aa@abc.com', //用户名
'password' => 'abc' //密码
);
$headers['From'] = 'aa@abc.com'; //发信地址
$headers['To'] = 'user@abc.com'; //收信地址
$headers['Subject'] = 'test'; //邮件标题
$headers['Content-type'] = 'text/html; charset=UTF-8';
$mail_object = &Mail::factory('smtp', $conf['mail']);
$body = $msg;
$mail_res = $mail_object->send($headers['To'], $headers, $body); //发送
/** php 发送流文件
* @param String $url 接收的路径
* @param String $file 要发送的文件
* @return boolean
*/
function sendStreamFile($url, $file){
if(file_exists($file)){
$opts = array(
'http' => array(
'method' => 'POST',
'header' => 'content-type:application/x-www-form-urlencoded',
'content' => file_get_contents($file)
)
);
$context = stream_context_create($opts);
$response = file_get_contents($url, false, $context);
$ret = json_decode($response, true);
return $ret['success'];
}else{
return false;
}
}
$ret = sendStreamFile('', 'send.txt');
var_dump($ret);
?>
/** php 接收流文件
* @param String $file 接收后保存的文件名
* @return boolean
*/
function receiveStreamFile($receiveFile){
$streamData = isset($GLOBALS['HTTP_RAW_POST_DATA'])? $GLOBALS['HTTP_RAW_POST_DATA'] : '';
if(empty($streamData)){
$streamData = file_get_contents('php://input');
}
if($streamData!=''){
$ret = file_put_contents($receiveFile, $streamData, true);
}else{
$ret = false;
}
return $ret;
}
$receiveFile = 'receive.txt';
$ret = receiveStreamFile($receiveFile);
echo json_encode(array('success'=>(bool)$ret));
?>
使用内建的mail()函数先要配置好参数:
在win32下,php.ini(不支持smtp验证):
SMTP = localhost
smtp_port = 25
在unix下,确定能调用到 sendmail。
linux还是win?linux下配置sendmailwin系统要调用smtp服务器
据我的了解,socket就是单独的线程,一直启用,php请求才会响应,否则待命。
你的socket需要考虑的是并发的问题,别的没有什么。
php->socket->服务器->socket->php
虚拟主机本身不自带发邮箱功能,需要您自己购买邮箱服务器,或使用第三方接口发送邮件
使用noiptcpnot-send-rst命令恢复发送reset报文