2015年4月30日 星期四

在CentOS 7 執行php command line程式寄信

在CentOS 7 執行php command line程式寄信

1.先安裝CentOS 7最小安裝

2.裝完後無法執行php

3.安裝Php

install php 5.6
#rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
#rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
#yum install php56w php56w-opcache

顯示php已加載的模組
[root@localhost php]# php -m
[PHP Modules]
bz2
calendar
Core
ctype
curl
date
ereg
exif
fileinfo
filter
ftp
gettext
......


沒有看到mysql模組

安裝mysql資料庫
Install MySQL 5.6 on CentOS 7

Add the Repository
#sudo rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

Install MySQL Packages
#sudo yum -y install mysql-community-server  (包含mysql client)

Start MySQL Server
#sudo /usr/bin/systemctl enable mysqld
#sudo /usr/bin/systemctl start mysqld

Secure MySQL 設定資料庫權限
#sudo /usr/bin/mysql_secure_installation


安裝php-mysql
install php-mysql 出現error
#yum install php-mysql
....
Error: php56w-common conflicts with php-common-5.4.16-23.el7_0.3.x86_64
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

移除php56w-common
#yum remove php56w-common
重新安裝php-mysql
#yum install php-mysql
安裝成功

測試使用php script寄信

測試程式碼:

begin-------------------------------------------------

#!/usr/bin/php

  //sendmail begin

  $subject = "=?UTF-8?B?".base64_encode('每日寄信檢查作業')."?="; //信件標題
  $msg = "每天09:30系統會寄出此封信件

";
  $msg = $msg . "請記錄收到信的時間,若超過30分鐘,表示異常,必須通知管理員處理
";
  $headers = "From: monkey@xxxx.com.tw\r\n".
                     "MIME-Version: 1.0" . "\r\n" .
                 "Content-type: text/html; charset=UTF-8" . "\r\n";; //寄件者
  if(mail("kitty@gmail.com", "$subject", "$msg", "$headers"))
    print "通知已經發送成功。
";//寄信成功就會顯示的提示訊息
  else
    print "通知發送失敗!
";//寄信失敗顯示的錯誤訊息

?>

end-----------------------------------------------------

存檔到/php/ex009.php
#chmod +x /php/ex009.php
執行寄信程式
[root@localhost php]# ./ex009.php
通知已經發送成功。


檢查email信箱,有收到信件

程式碼說明
#!/usr/bin/php
程式第一行有此程式碼,就可以值接執行此指令
$subject = "=?UTF-8?B?".base64_encode('每日寄信檢查作業')."?="; //信件標題
這不是亂碼,是要將郵件標題用base64加密,以符合信件主旨格式,收到的人才不會看到亂碼。










沒有留言:

ubuntu 安裝完kubernetes後做apt-get update會出現錯誤

root@k8s02:~# sudo apt-get update 已有:1 http://tw.archive.ubuntu.com/ubuntu xenial InRelease 已有:2 http://tw.archive.ubuntu.com/ubuntu xenia...