in reply to sending email from checkbox with SMTP address associated in an HTML form

Normally I just say RTFM, but I understand the situation in which you find yourself. I had played with perl for some time when my father's company's web design company decided to change backend languages and wished to charge his company for an entire rewrite (gotta love companies like that; code was a nightmare, btw). Anyhow, you can* read about it in my autobiography and won't bore you with the eventual triumph of our hero. Enough about me. I offer some code to assist you with your troubles.

... my %option_to_address = ( User1 => 'user1@domain.com', # note the single quotes User2 => 'user2@domain.com', User3 => 'user3@domain.com' ); ... # take all of the values returned for m_EmailGroups and # build an address list my @addresses = map($option_to_address{$_},grep($option_to_address{$_} +,$query->param("m_EmailGroups"))); for my $address (@addresses) { # setup the email stuff here } ...

Pretty much the only things left to you are setting up %option_to_address, writing the html for them, and figuring out how to convert SendMail and SendMailBySMTP to use the addresses you're looking for. I haven't looked at them much, but I think they send the e-mail. Anywho, suggested reading: How to RTFM, Net::SMTP, map, grep, perldsc, and most importantly the camel. Also, the quality of this script is somewhat questionable. It doesn't use strict and I saw at least one place where soft references were used. I am only mentioning this so you don't adopt these practices.

Hope this helps.

* Disclaimer: actually, too busy writing perl scripts and modules to consider writing something about myself.

antirice    
The first rule of Perl club is - use Perl
The
ith rule of Perl club is - follow rule i - 1 for i > 1

  • Comment on Re: sending email from checkbox with SMTP address associated in an HTML form
  • Download Code

Replies are listed 'Best First'.
Re: Re: sending email from checkbox with SMTP address associated in an HTML form
by Anonymous Monk on Jul 11, 2003 at 15:09 UTC
    Just want to thank you for your time and help and not blowing me off from my inexperience and telling me to RTFM.
    I have a questions regarding your little snipplet. Can you explained a little further or give expamples
    as to what your comments below means... Do you mean take the value from the name=m_EmailGroups
    like and value=sales in the HTML form?... that do you mean by the comment 'building address list' and 'setup the email stuff here'?
    Thanks again!!

    # take all of the values returned for m_EmailGroups and
    # build an address list
    # setup the email stuff here

      Ok. Basically in your html code you created checkbox groups. Checkbox groups all have the same name but use different values. i.e.

      <input type="checkbox" name="m_EmailGroups" value="User1"> <input type="checkbox" name="m_EmailGroups" value="User2"> <input type="checkbox" name="m_EmailGroups" value="User3">

      If you check the first and second ones, they will be submitted as m_EmailGroups=User1&m_EmailGroups=User2. When we call $query->param("m_EmailGroups") in a list context, you get (User1,User2). The my @addresses ... line takes this list, wipes out all values that aren't keys of the %option_to_address hash, gathers the values for those keys and places them in the @addresses array. For the setup the email stuff here comment, I'm leaving that as a task for you to do. Just read up on Net::SMTP, specifically the recipient method.

      Hope this helps.

      antirice    
      The first rule of Perl club is - use Perl
      The
      ith rule of Perl club is - follow rule i - 1 for i > 1

        I read the Net::SMTP and added this to the perl Scipt....for some reason I get..
        "Can't call method "recipient" on an undefined value at C:\cgi-bin\mail_form.pl line 75."

        $smtp->recipient("To: @addresses\n");