{{velocity}} ## Receives the inquiry form on starshipos-f18.com (POST) and files it as a page under ## Inquiries.Entries, which only the administrator can read. It runs with this page's author's ## rights (getDocumentAsAuthor, saveAsAuthor): a guest can reach nothing but this. Nothing a visitor ## sends is ever written into this page's output or an entry's title: with this author's rights, ## text that reached the wiki markup could run a macro. ## Each inquiry filed is also e-mailed to Captain Bob (#161; ruled 2026-11-10: "server emails each ## one"), plain text, through the wiki's mail service (Administration > Email > Mail Sending: the ## SMTP account is set there, not here). Reply-To is the visitor's address, which has passed the ## address check above; the subject is fixed but for the topic, its line breaks removed. If the ## mail is not sent the inquiry is filed all the same, and its entry says so (its E-mailed field: no). #macro (field $n $max)#set ($v = "$!request.getParameter($n)")#set ($v = $v.trim())#if ($v.length() > $max)#set ($v = $v.substring(0, $max))#end#end #if ($request.method != 'POST') This page receives the inquiry form on [[starshipos-f18.com>>https://starshipos-f18.com/bin/view/Inquiries/]]. #else #field('website' 200)#set ($trap = $v) #field('name' 200)#set ($name = $v) #field('email' 200)#set ($email = $v) #field('organization' 200)#set ($org = $v) #field('topic' 100)#set ($topic = $v) #field('message' 10000)#set ($message = $v) #set ($wants = "$!request.getParameter('announcements')" != '') #if ($trap != '') ## a robot filled the field people cannot see: say thanks, keep nothing {{html}}

Thank you. Your inquiry has been received.

{{/html}} #elseif ($name == '' || $message == '' || !$email.matches('^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$')) {{html}}

Your inquiry was not sent: a name, a valid e-mail address and a message are needed. Back to the form.

{{/html}} #else #set ($stamp = $datetool.format('yyyyMMdd-HHmmss', $datetool.date)) #set ($ref = "Inquiries.Entries.I${stamp}-$mathtool.random(1000, 9999)") #set ($entry = $xwiki.getDocumentAsAuthor($ref)) #set ($d = $entry.setTitle("Inquiry $stamp")) #set ($o = $entry.newObject('Inquiries.Code.InquiryClass')) #set ($d = $o.set('name', $name)) #set ($d = $o.set('email', $email)) #set ($d = $o.set('organization', $org)) #set ($d = $o.set('topic', $topic)) #set ($d = $o.set('message', $message)) #if ($wants)#set ($d = $o.set('announcements', 1))#else#set ($d = $o.set('announcements', 0))#end #set ($d = $o.set('source', 'starshipos-f18.com')) #set ($d = $o.set('status', 'new')) #set ($d = $entry.saveAsAuthor('An inquiry from the .com form')) ## the e-mail: every visitor-given value is plain text in a text/plain part, never markup #set ($subjectTopic = $topic.replaceAll('[\r\n]+', ' ')) #set ($body = "A new inquiry from starshipos-f18.com, filed as ${ref}: ${xwiki.getURL($ref, 'view')} Name: $name E-mail: $email Organization: $org Topic: $topic Announcements: #if ($wants)yes#{else}no#end $message ") #set ($mail = $services.mail.sender.createMessage('rajames440@gmail.com', "Inquiry from starshipos-f18.com: $subjectTopic")) #if ($mail) #set ($d = $mail.addPart('text/plain', $body)) #set ($d = $mail.setHeader('Reply-To', $email)) #set ($sent = $services.mail.sender.send($mail)) #set ($ok = $sent && !$services.mail.sender.lastError) #if ($ok)#set ($ok = $sent.statusResult.waitTillProcessed(30000))#set ($ok = !$sent.statusResult.allErrors.hasNext())#end #else #set ($ok = false) #end #set ($e2 = $xwiki.getDocumentAsAuthor($ref)) #set ($o2 = $e2.getObject('Inquiries.Code.InquiryClass')) #if ($o2)#if ($ok)#set ($d = $o2.set('mailed', 1))#else#set ($d = $o2.set('mailed', 0))#end#set ($d = $e2.saveAsAuthor('Whether the inquiry was e-mailed'))#end {{html}}

Thank you. Your inquiry has been received; every message is read by a human, and replies usually come within a few days.

Back to starshipos-f18.com

{{/html}} #end #end {{/velocity}}