postfixadminでメールボックスが作成されない件

Postfix Admin 2.3.5でメルアド追加してもメールボックスが作成されなかったのでメモ。

postfixadminでドメインとアドレスを追加した時にメールボックスが作成されませんでした。
さくらVPSのお試し期間のOB25Pが原因かなーと思って
課金してみて再度やっても作成されません><。

postfixadminではメルアドを追加した時にそのメルアドにメールを送ってメールボックスを作成しているらしいです。該当部分はここ。

postfixadmin/function.inc.php

//
// smtp_mail
// Action: Sends email to new account.
// Call: smtp_mail (string To, string From, string Data)
// TODO: Replace this with something decent like PEAR::Mail or Zend_Mail.
function smtp_mail ($to, $from, $data)
{
    global $CONF;
    $smtpd_server = $CONF['smtp_server'];
    $smtpd_port = $CONF['smtp_port'];
    $smtp_server = $_SERVER["SERVER_NAME"];
    $errno = "0";
    $errstr = "0";
    $timeout = "30";
 
    $fh = @fsockopen ($smtpd_server, $smtpd_port, $errno, $errstr, $timeout);
 
    if (!$fh)
    {
        return false;
    }
    else
    {
        $res = smtp_get_response($fh);
        fputs ($fh, "EHLO $smtp_server\r\n");
        $res = smtp_get_response($fh);
        fputs ($fh, "MAIL FROM:<$from>\r\n");
        $res = smtp_get_response($fh);
        fputs ($fh, "RCPT TO:<$to>\r\n");
        $res = smtp_get_response($fh);
        fputs ($fh, "DATA\r\n");
        $res = smtp_get_response($fh);
        fputs ($fh, "$data\r\n.\r\n");
        $res = smtp_get_response($fh);
        fputs ($fh, "QUIT\r\n");
        $res = smtp_get_response($fh);
        fclose ($fh);
    }
    return true;
}
 
//
// smtp_get_response
// Action: Get response from mail server
// Call: smtp_get_response (string FileHandle)
//
function smtp_get_response ($fh)
{
    $res ='';
    do
{
    $line = fgets($fh, 256);
    $res .= $line;
}
while (preg_match("/^\d\d\d\-/", $line));
return $res;
}

メルアド追加時のメールログをみてみました。

/var/log/mail.log

warning: table "mysql:/etc/postfix/mysql_virtual_domains_maps.cf": empty lookup result for:****.com

どうやらmysql_virtual_domains_maps.cfが怪しいみたいです。

/etc/postfix/mysql_virtual_domains_maps.cf

user = postfix
password = *******
hosts = localhost
dbname = postfix
table = domain
select_field = description
where_field = domain

DB名postfixのdomain.descriptionをSELECTしているらしいので、該当カラムをみてみると空白でした。
おかしーなーと思って別のpostfixが稼働してるサーバーの該当カラムを見てみると
「No Description」という文字列が入っているではありませんか。

つまり、postfixadminでドメインを追加する時に、説明を空白のままドメインを追加すると
メルアドを追加してもメールボックスが作成されないということでした。

postfixadminでドメインを追加する時は説明を入力するようにしよう!!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です