以前、書いたgmail.comのstmp送信をそのまま利用できなかったので、いろいろ試してみたら、以下のように auth() で AUTHMETHOD='LOGIN' を指定したら動きました。
http://search.cpan.org/perldoc?Net%3A%3ASMTPS
#!/usr/local/bin/perl use strict; use utf8; use Encode; use Net::SMTPS; use Data::Dumper; my $SMTP_CONF = {host => 'ないしょ.sakura.ne.jp', port => '587', from => 'ないしょ', auth_uid => 'ないしょ', auth_pw => 'ないしょ', ssl=> 'starttls', # ssl / starttls / undef auth_method=>'LOGIN' # CRAM-MD5 (default) / LOGIN / PLAIN / DIGEST-MD5 }; main( @ARGV ); sub main { my ($mailto) = @_; my $smtp = Net::SMTPS->new( $SMTP_CONF->{host}, Port => $SMTP_CONF->{port}, doSSL => $SMTP_CONF->{ssl}, Debug => 1 ); $smtp->auth( $SMTP_CONF->{auth_uid}, $SMTP_CONF->{auth_pw}, $SMTP_CONF->{auth_method} ) or die "can't login smtp server"; my $mailto = [ $mailto ]; my $mailto_str = join( ',', @$mailto ); my $subject_org = 'これはテストです'; my $subject = Encode::encode( 'MIME-Header-ISO_2022_JP', $subject_org ); my $message = <<EOF; このメールはテストです EOF #メールのヘッダーを構築 my $header = << "MAILHEADER_1"; From: $SMTP_CONF->{from} Return-path: $SMTP_CONF->{from} Reply-To: $SMTP_CONF->{from} To: $mailto_str MAILHEADER_1 $header .= <<"MAILHEADER_2"; Subject: $subject Mime-Version: 1.0 Content-Type: text/plain; charset = "ISO-2022-JP" Content-Transfer-Encoding: 7bit MAILHEADER_2 $message = Encode::encode( 'iso-2022-jp', $message ); $smtp->mail( $SMTP_CONF->{from} ); $smtp->to(@$mailto); $smtp->data(); $smtp->datasend("$header\n"); $smtp->datasend("$message\n"); $smtp->dataend(); $smtp->quit; }