导航:首页 > 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邮件服务器搭建相关的知识