[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [hobbit] mailack question



Possibly for a good reason - I expect to get slapped by Henrik... :)

Ralph


On Wed, Jul 9, 2008 at 8:13 PM, Phil Wild <philwild (at) gmail.com> wrote:

> Ralph,
>
> Well done....
>
> This is not documented in the man page...
>
> Cheers
>
> Phil
>
> 2008/7/10 Ralph Mitchell <ralphmitchell (at) gmail.com>:
>
>  On Wed, Jun 25, 2008 at 7:44 PM, Allan Spencer <allan (at) zandahar.net>
>> wrote:
>>
>>> HI all
>>>
>>> A LONG time ago I asked about ack'ing an alert via email (or via
>>> sms-to-email) and to be able to do so without a subject. A patch was written
>>> at the time and it was included into the main codebase but unfortunately I
>>> did not get a chance to imeplement what I wanted to and never ended up
>>> testing it. Thats has just changed recently and now I am having issues
>>> acking an alert via text in the body.
>>>
>>> If i reply to an email and maintain the subject it works fine, if I try
>>> cut the subject and paste it as the body nothing happens. I havent gone as
>>> far as testing it via the sms-to-email app yet as I cant get it working from
>>> a normal email.
>>
>>
>>
>> The hobbit-mailack.c program loops through the incoming email, looking for
>> interesting stuff.  Here's where it finds the subject line:
>>
>>      else if (strncasecmp(STRBUF(inbuf), "subject:", 8) == 0)
>>          subjectline = strdup(skipwhitespace(STRBUF(inbuf)+8));
>>
>> Once the headers are done with, it goes on to look for some things in the
>> email body, such as "delay=" and "ack=":
>>
>>      else if ((strncasecmp(STRBUF(inbuf), "ack=", 4) == 0) ||
>>                 (strncasecmp(STRBUF(inbuf), "ack ", 4) == 0)) {
>>                                 /* Some systems cannot generate a subject.
>> Allow them to ack
>>                                  * via text in the message body. */
>>                                 subjectline = (char *)malloc(1024);
>>                                 snprintf(subjectline, 1023, "Subject:
>> Hobbit [%s]", STRBUF(inbuf)+4);
>>                         }
>>
>> So, does the email body contain a line that starts with "ack=NNNNNN" or
>> "ack NNNNN"??  If not, it won't match the above code fragment.  It looks
>> like it should be *just* the number, as that gets filled in between the
>> square brackets in the faked subject line.
>>
>> I noticed something else interesting in the code.  The last thing it does
>> is call sendmessage, handing it a buffer loaded like this:
>>
>>      p += sprintf(p, "hobbitdack %s %d %s", cookie, duration,
>> firsttxtline);
>>         if (fromline) {
>>            p += sprintf(p, "\nAcked by: %s", fromline);
>>         }
>>
>> I figured it wouldn't hurt to try doing this:
>>
>>      server/bin/bb localhost "hobbitdack NNNNNN 60 this thing is broken
>>      Acked by: me (at) this.domain.com"
>>
>> where NNNNNN came from a real, current warning message.  Note the
>> placement of the double-quotes - there needs to be a newline between the
>> message and "Acked by".  And now, just below the "Status unchanged in...."
>> message at the bottom of the page I find this:
>>
>>           Current acknowledgment: this thing is broken
>>                Acked by: me (at) this.domain.com
>>                Next update at: 12:54 2008-07-09
>>
>> and there's a nice yellow check mark on the all-non-green page.  So it
>> looks like an ACK *can* be sent via the command line...
>>
>> Ralph
>>
>>
>
>
> --
> Tel: 0400 466 952
> Fax: 0433 123 226
> email: philwild AT gmail.com
>