今天又查阅了相关资料,找到一个可以自己创建邮箱账号的方法,这样我们就不用再为每一个邮件账号创建系统账号了,管理更方便,安全性也提高了。
按照上面的链接,安装完成 postfix 和 smtp 认证后,直接看这里的配置就可以了。
配置 SMTP 认证(虚拟用户版,无需创建系统用户)
1. 修改 smtpd.conf 配置文件
vim /etc/sasl2/smtpd.conf
修改以下属性为:
pwcheck_method: auxprop
2. 修改 saslauthd 认证方式
vim /etc/sysconfig/saslauthd
#MECH=pam # 注释掉该行,默认是开启的
FLAGS=sasldb # 修改该行的值,默认为空
3. 设置 sasldb2 认证库的权限
chgrp postfix /etc/sasldb2 # 设置 认证库的所在组,不设置,则程序无法调用
chmod 640 /etc/sasldb2 更改sasl认证库读写权限
4. 添加 sasl 认证用户
将 wica 添加到 gretheer.com 域名下
saslpasswd2 -u gretheer.com -c wica
# 回车后,会提示输入密码,按照提示输入密码并重复密码。
5. 添加防火墙设置
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
service iptables save
6. 设置开机启动
service postfix start # 启动 postfix
ervice saslauthd start # 启动 sasl认证
chkconfig postfix on # 设置 postfix 开机启动
chkconfig saslauthd on # 设置 sasl 认证开机启动
PHP 发送邮件示例
set_time_limit (0);
require_once('./class.phpmailer.php');
// 测试发送附件专用
$tmp_file = '/tmp/test.jpg';
$mail = new PHPMailer(true);
// 是否为 SMTP 认证
$mail->IsSMTP();
try {
// 服务器 IP,程序在本地使用,所以填写 127.0.0.1,
$mail->Host = "127.0.0.1";
// 调试模式关闭
$mail->SMTPDebug = 0;
// 是否开户 SMTP 认证
$mail->SMTPAuth = true;
// SMTP 认证用户名,此处填写系统用户名,可以专门创建一个普通用户用于发送邮件
$mail->Username = "username";
// SMTP 认证用户密码,此处填写与系统用户名对应的系统用户密码
$mail->Password = 'password';
// 设置邮件内容字符集,防止中文乱码
$mail->CharSet = 'UTF-8';
// 接收邮件地址
$mail->AddAddress('abcdef@126.com', '忙碌的松鼠');
// 设置我的邮件地址
$mail->SetFrom('info@example.com', '忙碌的松鼠');
// 邮件标题
$mail->Subject = '欢迎大家关注 忙碌的松鼠';
// 邮件内容,可以是HTML代码
$mail->MsgHTML('欢迎大家关注 忙碌的松鼠 博客,博客地址:http;//www.gretheer.com');
// 添加附件
$mail->AddAttachment($tmp_file);
// 发送
$mail->Send();
} catch (Exception $e) {
// 报错信息
echo $mail->ErrorInfo;
}
?>
注意
第3步如果找不到 /etc/sasldb2 文件,请先执行第4步,添加完用户后,会自动生成该文件,然后再回头执行第3步。