BugFixの落書き
さくらインターネットのサーバーを使用していますが、どうやらサーバーのバージョンアップに伴って、メール関係の仕様も変更されたようですね。
同時にWeb Diary Professionalのメール投稿機能も停止してしまいました。
さて、今回はその対処法です。
様々LOGをあさってみると、ありました。
Pealバージョンで関数pack→sockaddr_inの仕様変更があったんですね。
Web Diary Professional Ver 4.72
lib/webliberty/POP3.pm
40行目付近
改造前
if (!$self->{pop_port}) {
$self->{pop_port} = ‘110’;
}
socket(webliberty_POP3, PF_INET, SOCK_STREAM, getprotobyname(‘tcp’));
my $server_ip = gethostbyname($self->{pop_server});
my $server_addr = pack(‘Sna4x8’, AF_INET, $self->{pop_port}, $server_ip);
my $socket_mesg;
↓
改造後
if (!$self->{pop_port}) {
$self->{pop_port} = ‘110’;
}
use Socket;
socket(webliberty_POP3, PF_INET, SOCK_STREAM, getprotobyname(‘tcp’));
my $server_addr = sockaddr_in($self->{pop_port}, inet_aton($self->{pop_server}));
my $socket_mesg;
大変勉強になりました。
Tamboさん、ありがとうございます。
コメント