Electric200 |
---|
Нагуглил это чудо |
А в чем ваша проблема, в создании самого письма, или в отправке?
Создавать текстовую часть можно чем угодно. Ниже пример на perl.
Отправку можно делать с помощью
https://wiki.postgresql.org/wiki/PGQ_TutorialНе понимаю, почему вам cron не подходит. Задержка в одну минуту кажется большой?
CREATE OR REPLACE FUNCTION mailer.mailgen(
mailfrom character varying,
mailto character varying,
bcc character varying,
subject character varying,
messageid character varying,
body text,
attachment text,
attachmentname character varying)
RETURNS text AS
$BODY$
use Encode;
use MIME::Lite;
use MIME::Base64;
use utf8;
$mailfrom = $_[0];
$mailto = $_[1];
$bcc = $_[2];
$subject = $_[3];
$messageID = $_[4];
$body = $_[5];
$attachment = $_[6];
$attachmentName = $_[7];
## Subject encoding -> mime_code -> mark encoding
$subject = encode('utf8', $subject);
$subject = MIME::Base64::encode($subject,"");
$subject = "=?utf-8?B?".$subject."?=";
## Body encode for utf8
$body = encode('utf8', $body);
$msg = MIME::Lite->new(
From =>$mailfrom,
To =>$mailto,
Cc =>$bcc,
Subject =>$subject,
Type =>'multipart/mixed');
$msg->add("Message-ID", $messageID);
## { add body
$part1 = MIME::Lite->new(
Type =>'text/html;charset=utf-8',
Encoding => 'base64',
Data =>$body
);
$msg->attach($part1);
## } add body
## { add atachment
$part2 = MIME::Lite->new(
Type =>'TEXT',
Disposition => 'attachment',
Filename => $attachmentName,
Data =>$attachment
);
##### { replace atachment tags
$part2->replace('Content-Transfer-Encoding' => 'base64');
$part2->replace('Content-Type' => 'application/octet-stream');
##### } replace atachment tags
$msg->attach($part2);
## } add atachment
$message=$msg->as_string;
return $message;
$BODY$
LANGUAGE plperlu VOLATILE SECURITY DEFINER
COST 100;