centosphpmail
‘壹’ php mail()的问题
你的PHP是在WINDOWS上运行吧,那么需要在PHP.INI文件里面检查下面行的内容:
[mail function]
SMTP = localhost
smtp_port = 25
;sendmail_from = [email protected]
前面两行设置SMTP的服务器地址和端口,最后一行设置默认的发件人地址(不是必需设置的)。
发信的mail函数格式如下:
bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]] )
前面三个参数是对方地址、邮件标题、正文,例如:
<?php
// The message
$message = "Line 1\nLine 2\nLine 3";
// In case any of our lines are larger than 70 characters, we should use wordwrap()
$message = wordwrap($message, 70);
// Send
mail('[email protected]', 'My Subject', $message);
?>
后面的参数可以用来进行设置邮件的头部信息,例如指定发件人地址,例如:
<?php
$to = '[email protected]';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>
‘贰’ PHP和Centos什么区别分别是什么东西新手上路,弄不懂。
php 是一种编程语言,主要用于web开发领域。
Centos是一种操作系统 linux的发行版之一。
通常将php编写好的应用程序挂载在安装了linux系统的服务器上运行。
‘叁’ centos6.5怎么安装php5.5
1.******已安装Nginx******
ps -aux | grep nginx
netstat -anptu | grep 80
2.清除系统中php痕迹:
yum remove php
rm -rvf /etc/php
rm -rvf /etc/php.ini
rm -f /usr/bin/php
3.安装php所需软件包:
tar zxvf autoconf-2.68.tar.gz -C /usr/src
cd /usr/src/autoconf-2.68/
./configure && make && make install
tar zxvf libiconv-1.14.tar.gz -C /usr/src
cd /usr/src/libiconv-1.14/
./configure && make && make install
tar zxvf libmcrypt-2.5.8.tar.gz -C /usr/src
cd /usr/src/libmcrypt-2.5.8/
./configure && make && make install
ldconfig
cd libltdl/
./configure --enable-ltdl-install
make && make install
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
tar zxvf mhash-0.9.9.9.tar.gz -C /usr/src
cd /usr/src/mhash-0.9.9.9/
./configure && make && make install
tar zxvf mcrypt-2.6.8.tar.gz -C /usr/src
cd /usr/src/mcrypt-2.6.8/
./configure && make && make install
4.加载php动态模块:
ln -s /usr/local/lib/libmcrypt.la /usr/lib64/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib64/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib64/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8
/usr/lib64/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib64/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib64/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib64/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib64/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1
/usr/lib64/libmhash.so.2.0.1
cp -R /usr/lib64/libpng.* /usr/lib/
cp -R /usr/lib64/libjpeg.* /usr/lib/
echo "/lib" >> /etc/ld.so.conf
echo "/usr/lib" >> /etc/ld.so.conf
echo "/usr/lib64" >> /etc/ld.so.conf
echo "/usr/local/lib" >> /etc/ld.so.conf
echo "* soft nproc 65535" >> /etc/security/limits.conf
echo "* hard nproc 65535" >> /etc/security/limits.conf
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf
echo "fs.file-max=65535" >> /etc/sysctl.conf
ldconfig
5.解压、配置、编译、安装php:
tar zxvf php-5.5.25.tar.gz -C /usr/src
cd /usr/src/php-5.5.25/
./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-iconv-dir \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--enable-opcache \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-mbstring \
--with-mcrypt \
--enable-ftp \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--without-pear \
--with-gettext \
--disable-fileinfo
make ZEND_EXTRA_LIBS='-liconv'
make install
6.链接php可执行文件:
ln -s /usr/local/php/bin/php /usr/bin/php
ln -s /usr/local/php/bin/phpize /usr/bin/phpize
ln -s /usr/local/php/sbin/php-fpm /usr/bin/php-fpm
7.编辑php.ini配置文件:
cp /usr/src/php-5.5.25/php.ini-proction
/usr/local/php/etc/php.ini
ln -s /usr/local/php/etc/php.ini /etc/php.ini
vim /etc/php.ini
[PHP]
engine = On
zend.ze1_compatibility_mode = Off
short_open_tag = On
asp_tags = Off
precision
= 12
y2k_compliance = On
output_buffering = On
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func=
serialize_precision = 100
safe_mode = Off
safe_mode_gid = Off
safe_mode_include_dir =
safe_mode_exec_dir =
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH
disable_functions =
passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket
disable_classes =
expose_php = On
error_reporting = E_ALL & ~E_NOTICE
display_errors = On
display_startup_errors = Off
log_errors = Off
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = Off
variables_order = "EGPCS"
register_globals = Off
register_long_arrays = Off
register_argc_argv = On
auto_globals_jit = On
post_max_size = 50M
magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
doc_root =
user_dir =
extension_dir =
"/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/"
enable_dl = On
cgi.fix_pathinfo=0
file_uploads = On
upload_max_filesize = 50M
max_file_uploads = 20
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60
[Date]
date.timezone = PRC
[filter]
[iconv]
[sqlite]
[Pcre]
[Syslog]
define_syslog_variables = Off
[mail function]
SMTP = localhost
smtp_port = 25
[SQL]
sql.safe_mode = Off
[ODBC]
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1
[MySQL]
mysql.allow_persistent = On
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket =
mysql.default_host =
mysql.default_user =
mysql.default_password =
mysql.connect_timeout = 60
mysql.trace_mode = Off
[MySQLi]
mysqli.max_links = -1
mysqli.default_port = 3306
mysqli.default_socket =
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = Off
[mSQL]
msql.allow_persistent = On
msql.max_persistent = -1
msql.max_links = -1
[OCI8]
[PostgresSQL]
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0
[Sybase]
sybase.allow_persistent = On
sybase.max_persistent = -1
sybase.max_links = -1
sybase.min_error_severity = 10
sybase.min_message_severity = 10
sybase.compatability_mode = Off
[Sybase-CT]
sybct.allow_persistent = On
sybct.max_persistent = -1
sybct.max_links = -1
sybct.min_server_severity = 10
sybct.min_client_severity = 10
[bcmath]
bcmath.scale = 0
[browscap]
[Informix]
ifx.default_host =
ifx.default_user =
ifx.default_password =
ifx.allow_persistent = On
ifx.max_persistent = -1
ifx.max_links = -1
ifx.textasvarchar = 0
ifx.byteasvarchar = 0
ifx.charasvarchar = 0
ifx.blobinfile = 0
ifx.nullformat = 0
[Session]
session.save_handler = files
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor
= 100
session.gc_maxlifetime = 1440
session.bug_compat_42 = 1
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 4
url_rewriter.tags =
"a=href,area=href,frame=src,input=src,form=,fieldset="
[MSSQL]
mssql.allow_persistent = On
mssql.max_persistent = -1
mssql.max_links = -1
mssql.min_error_severity = 10
mssql.min_message_severity = 10
mssql.compatability_mode = Off
mssql.secure_connection = Off
[Assertion]
[COM]
[mbstring]
[FrontBase]
[gd]
[exif]
[Tidy]
tidy.clean_output = Off
[soap]
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="/tmp"
soap.wsdl_cache_ttl=86400
[Zend Optimizer]
zend_extension =
/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/opcache.so
zend_loader.enable = 1
zend_loader.disable_licensing = 0
zend_loader.obfuscation_level_support = 3
8.编辑php-fpm.conf配置文件:
cp /usr/local/php/etc/php-fpm.conf.default
/usr/local/php/etc/php-fpm.conf
vim /usr/local/php/etc/php-fpm.conf
[global]
pid = /home/php/pid/php-fpm.pid
error_log = /home/php/log/php-fpm_error.log
log_level = notice
[www]
listen = 127.0.0.1:9000
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 6
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = /home/php/log/slow.log
9.编写php-fpm启动脚本
vim /etc/init.d/php-fpm
#!/bin/sh
# chkconfig:
2345 90
10
#
Description:
Start and
Stop php-fpm
# Provides:
php-fpm
#
Default-Start:
2 3 4 5
#
Default-Stop:
0 1 6
prefix=/usr/local/php
exec_prefix=${prefix}
php_fpm_BIN=${prefix}/sbin/php-fpm
php_fpm_CONF=${prefix}/etc/php-fpm.conf
php_fpm_PID=/home/php/pid/php-fpm.pid
php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID"
wait_for_pid () {
try=0
while test $try -lt 35 ; do
case "$1" in
'created')
if [ -f "$2" ] ; then
try=''
break
fi
;;
'removed')
if [ ! -f "$2" ] ; then
try=''
break
fi
;;
esac
echo -n .
try=`expr $try + 1`
sleep 1
done
}
case "$1" in
start)
echo -n "Starting php-fpm..."
$php_fpm_BIN --daemonize $php_opts
if [ "$?" != 0 ] ; then
echo " failed"
exit 1
fi
wait_for_pid created $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
stop)
echo -n "Stoping php-fpm..."
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -QUIT `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed. Use force-quit"
exit 1
else
echo " done"
fi
;;
force-quit)
echo -n "Terminating php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -TERM `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
restart)
$0 stop
$0 start
;;
reload)
echo -n "Reload service php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -USR2 `cat $php_fpm_PID`
echo " done"
;;
*)
echo "Usage: $0 {start|stop|force-quit|restart|reload}"
exit 1
;;
esac
10.创建目录并修改权限,重启nginx服务:
mkdir -p /home/php/log
mkdir -p /home/php/pid
chown -R www:www /home/php/log
chown -R www:www /home/php/pid
service nginx restart
11.添加php-fpm系统服务:
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig --level 2345 php-fpm on
chkconfig --list | grep php-fpm
12.启动php-fpm服务:
service php-fpm start
ps -aux | grep php-fpm
netstat -anptu | grep 9000
13.配置php测试页:
vim /home/www/html/phpinfo.php
‘肆’ 要使用SMTP或PHP mail函数发送邮件需满足什么条件(服务器发不了邮件..囧rz)
关于查看端口状态:
你应该可以得到服务器的IP地址吧,得不到也没关系,应该有域名才对。
然后使用你的本机telnet你的服务器25端口,看是否有数据返回
具体做法是运行->CMD->输入命令telnet xxx.com 25
如果你使用的是win7系统,没有安装telnet系统功能的话,可以到以下位置打开:
控制面板->程序和功能->(左侧列表最下方)打开或关闭windows功能->Telenet客户端->打勾后确定
待安装好后,重启cmd,重新尝试第一个操作
如果迟迟保持在“正在连接....”状态好一会,而后出现“无法打开到主机的连接。在端口 25:连接失败,那证明服务器没有开通25口,如果你用的是VPS,端口好像可以自行配置,毕竟是Linux系统,我不太会配置,你自行找相关的方法,如果是虚拟服务器,那就不行了,不过你可以再弄个企业邮局,或者使用申请的其它邮箱,比如网易的、新浪的、gmail的等等,依然可以使用邮件功能,但就不能使用PHP内置的mail函数了。
具体使用远程SMTP服务器来发送邮件的方法,你可以参考我以前回答的问题,你也可以使用现有的许多mail类库实现
我以前回答过的问题:http://..com/question/478821120.html?oldq=1
另外,使用telnet功能不顺手,可以网络一款专业端口刺探软件:superscan
‘伍’ php在windows下可以发送邮件,但部署到centos下就不行了,请问这是什么原因,centos环境是刚搭建好的。
在win环境下是没有办法安装centos的,如果你要做win和centos双系统,又没有安装盘,倒是可以用U盘安装。流程也简单: 1.下载centos的iso文件。 2.把iso文件用UltraISO刻录到U盘上。 3.规划和删除一个分区,让硬盘出现未使用的空间
‘陆’ centos服务器中怎么查看邮件
先使用file命令查看一共有多少封邮件 使用file命令可知一共有1640封邮件,正常来讲最后一封应该是最新生成的邮件。 我们直接键入1640来访问这封mail,看看是否是我们所需要的最新邮件。 可以看到时间是31日11点的邮件
‘柒’ CentOS 下如何搭建邮件服务器
下载U-Mail邮件系统 for CentOS(6.X) 一体盘最新版本。
2
解析好您的域名,将域名的MX记录和的A记录解析到您邮件服务器的IP地址。
MX记录和A记录解析方法参考网络经验,地址见参考资料
如果您是将邮件服务器放置在内网,通过端口映射的方式将外网IP的服务端口映射到内网,那么必须映射端口:25、110、80等。
3
将BIOS启动方式设置为光驱启动,并放入U-Mail for CentOS(6.X) 一体盘光盘
4
出现安装界面后,按回车键
5
设置TCP/IP参数(使用Tab键切换,空格键选择),选择如下图,按“OK”按钮
6
设置IP地址、子网掩码、网关和DNS等参数(请根据自己的网络环境设置这些参数),如下图。按“OK”按钮。
7
点击“Yes,discard any data”按钮进行初始化磁盘(如磁盘中有重要数据,请先备份再操作),如下图
8
设置root密码,点击“下一步
9
设置分区,这里我们选择自动分区(用户可以自定义分区,一般建1个boot分区,1个swap分区和1个根分区),点击“下一步”,如下图:
10
直接点击“下一步”,如下图
11
直接点击“下一步”:
12
选择默认的GRUB引导装载程序,并点击“下一步”,如下图:
13
开始安装系统
14
出现安装完成界面,点击“重新引导”重启服务器
15
重启好后,输入root帐号和密码登录系统,如下图:
16
出现U-Mail安装向导,输入邮箱域名后,选择“Next”确认,如下图:
注:如果您的邮件服务器主机是mail.domain.com,那么域名输入domain.com(请更改成自己的域名)
17
输入mysql数据的root帐号密码(请修改成自己需要的密码),输入后选择“Next”确认,如下图:
输入域管理员(admin)的登录密码(请修改成自己需要的密码),输入后选择“Next”确认,如下图:
输入超域管理员(administrator)的登录密码(请修改成自己需要的密码),输入后选择“Next”确认,如下图:
输入系统管理员(system)的登录密码,输入后选择“Next”确认,如下图
指定用户邮件存储目录,并选择“Next”确认,如下图:
设置Apache监控端口,按照默认设置即可。并选择“Next”确认,如下图
设置WebMail运行端口,按照默认设置即可(默认为80端口,如果想使用其它端口请更改)。并选择“Next”确认,如下图:
开始进行安装,如下图:
弹出“安装完成”窗口,点击“OK”按钮。如下图:
建议重启下服务器,输入reboot命令,如下图:
登录到系统管理后台,导入授权文件。
‘捌’ Centos 系统不能发送email,请教教我怎么才能发邮件呢
修改/etc/mail.rc
最末行添加类似于下面示例的内容
set [email protected] smtp=smtp.163.com smtp-auth-user="ne_z" smtp-auth-password="这个不告诉你了" smtp-auth=login
然后就可以用外部邮箱发送邮件了
from=邮箱地址
smtp=smtp服务器
smtp-auth-user=邮箱用户名
smtp-auth-password=邮箱密码
smtp-auth=就写login把
‘玖’ PHP mail()函数发送函数失败~~
mail函数被称为新PHPer的杀手!
因为这东西是需要许多配置才能够正常使用的。
你在本地测试的话,因为你使用的是windows系统,如果没有安装mail服务器,那这个函数根本就用不了。
所以,你应该去了解一下mail服务器的配置相关知识。
‘拾’ linux php mail问题:我用mail函数来发送邮件(下面是示例代码),我直接运行 php mail.php可以收到邮件,
可能是用户权限问题。
你执行PHP mail.php 的用户 和 php程序宿主的用户不一个吧?
用的什么邮件系统?