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程序宿主的用戶不一個吧?
用的什麼郵件系統?