半手動かな。 seq は本文。
require "kconv"
require 'base64'
require 'net/smtp'
def mime_encodings(x)
a = Base64.encode64(x.tojis)
s = a.split ' '
ss = []
s.each {|a|
ss[ss.length] = '=?iso-2022-jp?B?' + a + '?='
}
a = ss.join ' '
a
end
def sendmail(from,to,subject,seq)
if from != nil &&
to != nil &&
subject != nil &&
seq != nil &&
from =~ /\@/ &&
to =~ /\@/
xsubject = mime_encodings(subject)
xseq = seq.tojis
Net::SMTP.start("localhost",25){|smtp|
smtp.send_mail <<EOF, from,to
X-Mailer: FortuneMailer/0.2a by hachikun
Content-Type: text/plain; charset=iso-2022-jp
From: #{from}
To: #{to}
Subject: #{xsubject}
#{xseq}
EOF
}
end
end
MIME::Lite 他を使った送信。X-Mailerの内容は制御できない。
#!/usr/bin/perl use Jcode; use MIME::Lite; use POSIX 'strftime'; $now = strftime "%c %Z", localtime; $mime = MIME::Lite->new( From => $mail, To => $mailaddr, Subject => jcode($subject)->mime_encode, Type => 'text/plain; charset=iso-2022-jp', Encoding => '8bit', Data => jcode($seq)->h2z->jis, Datestamp => 0, Date => $now, ); $mime->send();