CentOS是由Red Hat Enterprise Linux(RHEL)源代碼而來的一個自由開源的操作系統。它使用的是RPM包管理工具和Yum軟件倉庫,能夠方便地安裝和管理軟件包。在CentOS中安裝和配置PHP和Sendmail可以幫助我們快速地搭建Web應用,本文將詳細介紹CentOS中如何配置PHP和Sendmail。
PHP是一門常用的Web編程語言,也是Linux中最常見的Web編程語言之一。PHP可以與Sendmail協作來真正讓我們的Web應用有郵件發送的能力。在CentOS中,我們可以使用Yum來安裝PHP和Sendmail:
yum install php sendmail
我們可以通過安裝php-mbstring、php-mysql、php-pgsql等擴展來增強PHP的功能,這里就不一一列舉了。 在CentOS中,Sendmail是默認的郵件傳輸代理程序,我們可以通過修改/etc/mail/sendmail.mc文件來配置Sendmail。例如,如果我們需要將郵件從localhost發向外部郵件服務器,則需要設置MASQUERADE_AS("外部域名")和FEATURE(masquerade_envelope)。dnl # MASQUERADE_AS(`mydomain.com')dnl MASQUERADE_AS(`gmail.com')dnl dnl # dnl # masquerade not just the headers, but the envelope as well dnl # FEATURE(masquerade_envelope)dnl我們還可以設置Smart Host,將郵件轉發到需要的郵件服務器。在/etc/mail/access文件中添加我們需要使用的郵件服務器信息:
Connect:[smtp.qq.com] RELAY Connect:[smtp.gmail.com] RELAY安裝PHP和Sendmail還不足以實現郵件發送,我們還需要安裝郵件發送庫。著名的郵件發送庫是PHPMailer,它可以讓我們更加便捷地發送郵件。在CentOS中,我們可以使用Composer安裝PHPMailer,也可以直接使用yum安裝:
yum install php-composer
使用Composer安裝PHPMailer:php composer.phar require phpmailer/phpmailer使用PHPMailer發送郵件:
isSMTP(); // Send using SMTP $mail->Host = 'smtp.gmail.com'; // Set the SMTP server to send through $mail->SMTPAuth = true; // Enable SMTP authentication $mail->Username = 'youremail@gmail.com'; // SMTP username $mail->Password = 'smtp_password_here'; // SMTP password $mail->SMTPSecure = 'tls'; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged $mail->Port = 587; // TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above //Recipients $mail->setFrom('youremail@gmail.com', 'Mailer'); $mail->addAddress('recipient@example.com', 'Joe User'); // Add a recipient // Content $mail->isHTML(true); // Set email format to HTML $mail->Subject = 'Here is the subject'; $mail->Body = 'This is the HTML message bodyin bold!'; $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; $mail->send(); echo 'Message has been sent'; } catch (Exception $e) { echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}"; } ?>以上代碼通過Gmail SMTP服務器發送郵件。需要注意的是,如果使用Gmail SMTP服務器,需要在Google賬戶設置中開啟“允許不太安全的應用訪問您的Google帳號”,否則會出現SMTP錯誤。如果不想使用Composer,我們也可以直接下載PHPMailer并在項目中使用即可。 總之,CentOS中通過PHP和Sendmail實現郵件發送并不難,只需要按照以上步驟進行配置即可。同時,我們也可以使用其他郵件發送庫,本文介紹了與Sendmail協作的PHPMailer,讀者可以按照自己的需求選擇適合自己的郵件發送庫。