bsw@1248: Newsletter = mondelefant.new_class() bsw@1248: Newsletter.table = 'newsletter' bsw@1248: bsw@1248: function Newsletter:send_next_newsletter() bsw@1248: local newsletter_to_send = NewsletterToSend:get_next() bsw@1248: if not newsletter_to_send then bsw@1248: return false bsw@1248: end bsw@1252: bsw@1248: local newsletter = newsletter_to_send.newsletter bsw@1248: bsw@1248: local newsletter_to_send = NewsletterToSend:by_newsletter_id(newsletter.id) bsw@1248: newsletter_to_send:load("member") bsw@1252: bsw@1248: newsletter.sent = "now" bsw@1248: newsletter:save() bsw@1252: bsw@1248: io.stderr:write("Sending newsletter " .. newsletter.id .. " to " .. (#newsletter_to_send) .. " members\n") bsw@1248: bsw@1248: for i, n in ipairs(newsletter_to_send) do bsw@1248: bsw@1297: local member = n.member bsw@1248: bsw@1252: if member.notify_email then bsw@1252: io.stderr:write("Sending newsletter " .. newsletter.id .. " to " .. member.notify_email .. "\n") bsw@1252: bsw@1252: local success = net.send_mail{ bsw@1252: envelope_from = config.mail_envelope_from, bsw@1252: from = config.mail_from, bsw@1252: reply_to = config.mail_reply_to, bsw@1305: to = { name = member.name, address = member.notify_email }, bsw@1252: subject = newsletter.subject, bsw@1252: content_type = "text/plain; charset=UTF-8", bsw@1252: content = newsletter.content bsw@1252: } bsw@1248: end bsw@1248: bsw@1248: end bsw@1248: bsw@1252: return true bsw@1252: bsw@1305: end