メール投稿でのエラーの対処法

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さん、ありがとうございます。

コメント

タイトルとURLをコピーしました