導航:首頁 > IDC知識 > php郵件伺服器搭建

php郵件伺服器搭建

發布時間:2021-01-23 15:05:13

1、Postfix郵件伺服器和PHP配合

不知道您為什麼要自己搭建郵件伺服器+web郵箱系統。對新手而言,是一件挺有挑戰性的事情。
郵件伺服器一般我們會考慮網路上很多免費的,它們一般技術成熟,伺服器穩定,而且都是免費的。您架設的,質量上不一定比它們更好。
而web郵箱管理系統,目前也有很多。對今天的用戶而言,也沒有太多吸引力,因為有很多的替代品。微軟的outlook,國產的foxmail都有多年的歷史,也很優秀。而現在移動互聯網時代,手機App也很有優勢。
我猜測,您是不是想讓會員在站內發簡訊?這跟郵件是兩碼事。
或者,您只是想通過php系統,給會員的郵箱發郵件?這用不著您架設郵件伺服器。
當然,您可能愛上了Postfix,因為偶爾得到一個別致的領帶胸針,最後為它配了一整套的西裝革履也有可能。
好吧,我來回答您的問題。
1、如何對Postfix收到郵件進行管理?
您需要編寫基本的兩個程序,收和發。收和發的代碼,比比皆是,代碼並不復雜。但是您要弄清楚架構。
您的郵件伺服器和郵件用戶代理伺服器(會員系統)在同一個主機上,但您得想成是兩個服務,兩個系統。就是說,您收郵件時候,讀取到郵件後,將數據存到會員系統的mysql上。這個郵件在這台伺服器上實際上有兩份了。一般伺服器軟體不會用到mysql,郵件以其他形式在硬碟上存儲。
發郵件,您可以通過您Postfix提供的smtp服務往外發。數據您自己通過php程序保留一份,在您會員系統的mysql里。Postfix沒必要保留發出去的郵件。
2.mysql在這裡面的角色是不是只管理用戶的帳號密碼信息?

如上所述,mysql當然要保留用戶的帳號密碼信息。但不僅如此,要保留發件的內容,還要放收到的郵件內容。
3.對於新手來說怎樣做最容易達到預期效果。

萬能的百度,一切用現成的就好。
您找到了Postfix,這是郵件伺服器。這個架設也不難,網上教程比比皆是。
如果只想做郵件,不想其他的,您搜一個免費的Webmail在線郵件系統就好了。英文的較多,自己做一下漢化。PostfixAdmin可以研究下,它可以和Postfix實現mysql數據共享。
中文的,extmail比較有名,它是一個套件,什麼都有,包括Postfix,拿來研究下直接用,無需二次開發。

2、要使用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://.baidu.com/question/478821120.html?oldq=1

另外,使用telnet功能不順手,可以百度一款專業埠刺探軟體:superscan

3、php發送郵件的問題:php怎麼才能發送郵件呢?使用自帶的函數,應該怎樣設置相應的郵件伺服器?

首先,我不想給phpmailer這個東西做廣告,但是我確實使用的這個東西,很費解。

下載一個phpmailer類,裡面主要的是三個文件class.phpmailer.phpclass.pop3.phpclass.smtp.php

將這三個文件放到同一個文件夾.eg:papmailer

申請一個網路郵件伺服器(我用的是163伺服器)

編寫發送郵件代碼如下

/**
     * 發送郵件
     * @param unknown_type $sendto_email        接收人Email
     * @param unknown_type $subject                郵件主題
     * @param unknown_type $body                郵件內容
     * @param unknown_type $user_name            接受人姓名
     */
    function send_email( $sendto_email, $subject, $body, $user_name){
        require_once "phpmailer/class.phpmailer.php"; 
        $mail = new PHPMailer();             //創建類對象
        $mail->IsSMTP();                                         
        $mail->Host = "smtp.163.com";         // SMTP servers 使用163伺服器,郵件smtp伺服器 
        $mail->SMTPAuth = true;               // turn on SMTP authentication 
        $mail->Username = "你申請的163郵箱帳號";                 // SMTP username 注意:普通郵件認證不需要加 @域名 
        $mail->Password = "163郵箱密碼";                 // SMTP password 
        $mail->From = "發件人郵箱,可以使用上面163郵箱";                     // 發件人郵箱 
        $mail->FromName = "發件人名稱,自己隨意命名";                 // 發件人 
        
        $mail->CharSet = "utf8";                                // 這里指定字元集! 
        $mail->Encoding = "base64"; 
        $mail->AddAddress($sendto_email,$user_name);            // 收件人郵箱和姓名 
        $mail->IsHTML(true); // send as HTML 
        // 郵件主題 
        $mail->Subject = $subject; 
        // 郵件內容 
        $mail->Body = $body;
        
        $mail->AltBody ="text/html"; 
        if(!$mail->Send()){ 
            return $mail->ErrorInfo; 
        }else { 
            return true; 
        } 
    }

4、php怎麼通過第三方郵件伺服器來發送郵件

用 PHPMailer ,這是一個郵件發送插件,到網上下載一個,具體的使用官網有方法的,很簡單。
swiftMailer 也可以的。
php自帶的mailer方法需要系統的支持,如果是linux的話可以直接使用,而windows就麻煩了,就用上面說的兩個插件中的任何一個就行了,

5、php.ini中怎麼設置郵件伺服器

直接調用PHP的mail()函數最方便。

mail( 收件人, 主題, 正文, [郵件頭] );

發送純文本郵件的話郵件頭可以省略。

如果我的回答沒能幫助您,請繼續追問。

您也可以向我們團隊發出請求,會有更專業的人來為您解答。

6、phpmailer 使用starttls協議的郵件伺服器怎麼寫

under the door

7、php 網站 用phpmailer發送郵件在本地測試成功上傳到伺服器不能發送

首先要看你的伺服器是否有跟你本地一樣的phpmailer文件,然後看伺服器是否支持socket(如果支持phpinfo函數可通過phpinfo()查看),缺一不可。

8、thinkphp phpmailer 用哪個郵件伺服器

Thinkphp3.2 PHPMailer 發送郵件結合QQ企業郵箱發送郵件
下載附件PHPMailer解壓到ThinkPHP\Library\Vendor

在Common文件夾新建function.php
/**
* 郵件發送函數
*/
function sendMail($to, $title, $content) {

Vendor('PHPMailer.PHPMailerAutoload');
$mail = new PHPMailer(); //實例化
$mail->IsSMTP(); // 啟用SMTP
$mail->Host=C('MAIL_HOST'); //smtp伺服器的名稱(這里以QQ郵箱為例)
$mail->SMTPAuth = C('MAIL_SMTPAUTH'); //啟用smtp認證
$mail->Username = C('MAIL_USERNAME'); //你的郵箱名
$mail->Password = C('MAIL_PASSWORD') ; //郵箱密碼
$mail->From = C('MAIL_FROM'); //發件人地址(也就是你的郵箱地址)
$mail->FromName = C('MAIL_FROMNAME'); //發件人姓名
$mail->AddAddress($to,"尊敬的客戶");
$mail->WordWrap = 50; //設置每行字元長度
$mail->IsHTML(C('MAIL_ISHTML')); // 是否HTML格式郵件
$mail->CharSet=C('MAIL_CHARSET'); //設置郵件編碼
$mail->Subject =$title; //郵件主題
$mail->Body = $content; //郵件內容
$mail->AltBody = "這是一個純文本的身體在非營利的HTML電子郵件客戶端"; //郵件正文不支持HTML的備用顯示
return($mail->Send());
}
復制代碼
添加配置文件

config.php
// 配置郵件發送伺服器
'MAIL_HOST' =>'smtp.exmail.qq.com',//smtp伺服器的名稱
'MAIL_SMTPAUTH' =>TRUE, //啟用smtp認證
'MAIL_USERNAME' =>'[email protected]',//你的郵箱名
'MAIL_FROM' =>'[email protected]',//發件人地址
'MAIL_FROMNAME'=>'聚豐集團',//發件人姓名
'MAIL_PASSWORD' =>'******',//郵箱密碼
'MAIL_CHARSET' =>'utf-8',//設置郵件編碼
'MAIL_ISHTML' =>TRUE, // 是否HTML格式郵件
復制代碼
最後就是使用PHPMailer發送郵件
<form action="__URL__/add" method="post" enctype="multipart/form-data">
郵箱:<input type="text" id="mail" name="mail"/>
標題:<input type="text" id="title" name="title"/>
內容<input type="text" id="content" name="content"/>
<input class="button" type="submit" value="發送" style="margin: 0 auto;display: block;"/>
</form>
復制代碼
public function add(){
if(SendMail($_POST['mail'],$_POST['title'],$_POST['content']))
$this->success('發送成功!');
else
$this->error('發送失敗');
}

9、使用Foxmail如何搭建本地SMTP伺服器,用於測試PHP發送郵件功能。

foxmail是客戶端軟體,直接用server 2003的pop3服務就可以搭建smtp伺服器了。

與php郵件伺服器搭建相關的知識