Postfix邮件服务器和PHP配合

Postfix邮件服务器和PHP配合,第1张

不知道您为什么要自己搭建邮件服务器+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,拿来研究下直接用,无需二次开发。

SMTP协议叫做简单邮件传输协议,它主要的作用是控制邮件的中转,最终达到目的地。邮件的发送和收取实际上是由SMTP服务器完成的。当一封邮件到达SMTP机时,它会做出接收或中转邮件的选择。

POP叫邮局协议,POP3 是它的第三版。它负责将邮件从服务器接收到你的客户端。在邮件被SMTP服务器接收后,它会暂时存储在服务器上。但让用户登陆到服务器上去接收邮件,过程很繁琐且不安全。所以,你最终接收到的邮件是客户端通过POP协议访问服务器,并将邮件下载至本地。

所以,发送邮件不是PHP本身的功能,也不是ASP的功能,而是要依赖SMTP服务器。无论你用什么程序发邮件,都只是一个与服务器进行socket交互的过程。发送邮件的过程和POP协议无关。在使用邮件收发客户端的道理也是一样的。

如果想要发送邮件,就必须有一个支持SMTP的邮箱,或者一台自己架设的SMTP服务器。

首先,我不想给phpmailer这个东西做广告,但是我确实使用的这个东西,很费解。

下载一个phpmailer类,里面主要的是三个文件class.phpmailer.php\class.pop3.php\class.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 

        } 

    }


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/423653.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-25
下一篇2023-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存