简体   繁体   中英

Sending email via PHP Script

I'm using a wamp server, and I've used this php script before when sending form values to an email..and it worked perfect before! I can't find what I've done with the code, or it might be something spooking with my wamp server, because it's not sending anymore and I get the error message: There was a problem sending your message.

Code:

// Create the form
$contactForm = new JFormer('contactForm', array(
    'submitButtonText' => 'Send Message',
));

// Add components to the form
$contactForm->addJFormComponentArray(array(
    new JFormComponentSingleLineText('artistname', 'Artist Name:', array(
         'validationOptions' => array('required'),
        'tip' => '<p>Enter your artist name.</p>'
    )),
    new JFormComponentSingleLineText('trackname', 'Track Name:', array(
        'tip' => '<p>Enter your track name.</p>',
         'validationOptions' => array('required'),
    )),
    new JFormComponentSingleLineText('email', 'E-mail Address:', array(
        'tip' => '<p>Enter your email address.</p>',
         'validationOptions' => array('required'),
    )),
    new JFormComponentSingleLineText('stream', 'Link to Stream:</br>(if applicable)', array(
        'tip' => '<p>Enter your link to stream.</p>'
    )),
    new JFormComponentSingleLineText('download', 'Download Link:', array(
        'tip' => '<p>Enter your download link.</p>',
         'validationOptions' => array('required'),
    )), 

    new JFormComponentMultipleChoice('multipleChoiceType', 'Full Track or Clip:',
    array(
        array('label' => 'Full Track', 'value' => 'fulltrack'),
        array('label' => 'Clip', 'value' => 'clip'),
    ),
    array(
        'multipleChoiceType' => 'radio',
    )),
    new JFormComponentSingleLineText('downloadorpurchase', 'Free Download or 
    Purchase Link</br>(To be included in video description)', array(
        'tip' => '<p>Enter your link.</p>',
    )),
    new JFormComponentSingleLineText('releasedate', 'Release Date:</br>(if applicable)', array(
        'tip' => '<p>Enter the release date.</p>',
    )),
    new JFormComponentTextArea('artistandlabel', 'Artist / Label Links:</br>(To be included in description.)', array(
        'validationOptions' => array('required'),
        'tip' => '<p>Enter your description.</p>',
    )),
    new JFormComponentMultipleChoice('iagree', 'I confirm that I own full 
    copyright rights and grant the THU Records to post my music in their videos. I 
    understand that content may be monetized with adverts.',
    array(
        array('label' => 'I Accept', 'value' => 'accepted'),
        array('label' => 'I Do Not Accept', 'value' => 'dontaccepted'),
    ),
    array(
        'iagree' => 'radio',
         'validationOptions' => array('required'),
    )),
));



// Set the function for a successful form submission
function onSubmit($formValues) {

    // Concatenate the name
    if(!empty($formValues->name->middleInitial)) {
        $name = $formValues->name->firstName . ' ' . $formValues->name->middleInitial . ' ' . $formValues->name->lastName;
    }
    else {
        $name = $formValues->name->firstName . ' ' . $formValues->name->lastName;
    }
    // Prepare the variables for sending the mail
    $to = 'lill_z4ck3@hotmail.com';
    $fromAddress = $formValues->email;
    $trackName = $formValues->trackname;
    $streamLink = $formValues->stream;
    $download = $formValues->download;
    $trackorclip = $formValues->multipleChoiceType;
    $downloadOrPurchase = $formValues->downloadorpurchase;
    $releaseDate = $formValues->releasedate;
    $artistAndLabel = $formValues->artistandlabel;
    $agreement = $formValues->iagree;
    $artistName = $formValues->artistname;
    $subject = "Submit from ".$formValues->artistname;
    $message = "Artist Name : ".$artistName."\nTrack Name : ".$trackName."\n
     Email : ".$fromAddress."\n Stream Link : ".$streamLink."\nDownload link 
     : ".$download."\nTrack or Clip : ".$trackorclip."\nDownload or Purchase 
     : ".$downloadOrPurchase."\n Release Date : ".$releaseDate."\n Artist
      and Label Info : ".$artistAndLabel."\n Agreement : ".$agreement;

    // Use the PHP mail function
    $mail = mail($to, $subject, $message);

    // Send the message
    if($mail) {
        $response['successPageHtml'] = '
            <h1>Thanks for Contacting Us</h1>
            <p>Your message has been successfully sent.</p>
        ';
    }
    else {
        $response['failureNoticeHtml'] = '
            There was a problem sending your message.
        ';
    }

    return $response;
}

// Process any request to the form
$contactForm->processRequest();

Do anyone of you have any idea what could be wrong? :(

The mail() function usually doesn't work by default for things like WAMP. You will need to add details of your SMTP server to the php.ini file and then configure some other settings.

This is a nice tutorial: http://roshanbh.com.np/2007/12/sending-e-mail-from-localhost-in-php-in-windows-environment.html

Hope this helps.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM