我在html&中添加了一个文件附件。现在我想用phpmail函数配置它。
我使用classipress主题,我尝试编辑和配置它。
我在
的html中添加了此文件 <?php
/**
* This is the sidebar contact form used on the single ad page
*
*/
$msg = '';
// if contact form has been submitted, send the email
if ( isset( $_POST['submit'] ) && $_POST['send_email'] == 'yes' ) {
$result = cp_contact_ad_owner_email( $post->ID );
if ( $result->get_error_code() ) {
$error_html = '';
foreach ( $result->errors as $error )
$error_html .= $error[0] . '<br />';
$msg = '<p class="red center"><strong>' . $error_html . '</strong></p>';
} else {
$msg = '<p class="green center"><strong>' . __( 'Your message has been sent!', APP_TD ) . '</strong></p>';
}
}
?>
<form name="mainform" id="mainform" class="form_contact" action="#priceblock2" method="post" enctype="multipart/form-data">
<?php echo $msg; ?>
<p class="contact_msg"><?php _e( 'To inquire about this ad listing, complete the form below to send a message to the ad poster.', APP_TD ); ?></p>
<ol>
<li>
<label><?php _e( 'Name:', APP_TD ); ?></label>
<input name="from_name" id="from_name" type="text" minlength="2" value="<?php if(isset($_POST['from_name'])) echo esc_attr( stripslashes($_POST['from_name']) ); ?>" class="text required" />
<div class="clr"></div>
</li>
<li>
<label><?php _e( 'Email:', APP_TD ); ?></label>
<input name="from_email" id="from_email" type="text" minlength="5" value="<?php if(isset($_POST['from_email'])) echo esc_attr( stripslashes($_POST['from_email']) ); ?>" class="text required email" />
<div class="clr"></div>
</li>
<li>
<label><?php _e( 'Subject:', APP_TD ); ?></label>
<input name="subject" id="subject" type="text" minlength="2" value="<?php _e( 'Re:', APP_TD ); ?> <?php the_title();?>" class="text required" />
<div class="clr"></div>
</li>
<li>
<label><?php _e( 'Message:', APP_TD ); ?></label>
<textarea name="message" id="message" rows="" cols="" class="text required"><?php if(isset($_POST['message'])) echo esc_attr( stripslashes($_POST['message']) ); ?></textarea>
<div class="clr"></div>
</li>
<li>
<label><?php _e( 'Attach:', APP_TD ); ?></label>
<input name="attachments" id="attachments" type="file" />
<div class="clr"></div>
</li>
<li>
<?php
// create a random set of numbers for spam prevention
$randomNum = '';
$randomNum2 = '';
$randomNumTotal = '';
$rand_num = rand(0,9);
$rand_num2 = rand(0,9);
$randomNumTotal = $randomNum + $randomNum2;
?>
<label><?php _e( 'Sum of', APP_TD ); ?> <?php echo $rand_num; ?> + <?php echo $rand_num2; ?> =</label>
<input name="rand_total" id="rand_total" type="text" minlength="1" value="" class="text required number" />
<div class="clr"></div>
</li>
<li>
<input name="submit" type="submit" id="submit_inquiry" class="btn_orange" value="<?php _e( 'Send Inquiry', APP_TD ); ?>" />
</li>
</ol>
<input type="hidden" name="rand_num" value="<?php echo $rand_num; ?>" />
<input type="hidden" name="rand_num2" value="<?php echo $rand_num2; ?>" />
<input type="hidden" name="send_email" value="yes" />
</form>
这是我的phpmail函数:
function cp_contact_ad_owner_email( $post_id ) {
$errors = new WP_Error();
// check for required post data
$expected = array( 'from_name', 'from_email', 'subject', 'message' );
foreach ( $expected as $field_name ) {
if ( empty( $_POST[ $field_name ] ) ) {
$errors->add( 'empty_field', __( 'ERROR: All fields are required.', APP_TD ) );
return $errors;
}
}
// check for required anti-spam post data
$expected_numbers = array( 'rand_total', 'rand_num', 'rand_num2' );
foreach ( $expected_numbers as $field_name ) {
if ( ! isset( $_POST[ $field_name ] ) || ! is_numeric( $_POST[ $field_name ] ) ) {
$errors->add( 'invalid_captcha', __( 'ERROR: Incorrect captcha answer.', APP_TD ) );
return $errors;
}
}
// verify captcha answer
$rand_post_total = (int) $_POST['rand_total'];
$rand_total = (int) $_POST['rand_num'] + (int) $_POST['rand_num2'];
if ( $rand_total != $rand_post_total )
$errors->add( 'invalid_captcha', __( 'ERROR: Incorrect captcha answer.', APP_TD ) );
// verify email
if ( ! is_email( $_POST['from_email'] ) )
$errors->add( 'invalid_email', __( 'ERROR: Incorrect email address.', APP_TD ) );
// verify post
$post = get_post( $post_id );
if ( ! $post )
$errors->add( 'invalid_post', __( 'ERROR: Ad does not exist.', APP_TD ) );
if ( $errors->get_error_code() )
return $errors;
$mailto = get_the_author_meta( 'user_email', $post->post_author );
$from_name = appthemes_filter( appthemes_clean( $_POST['from_name'] ) );
$from_email = appthemes_clean( $_POST['from_email'] );
$subject = appthemes_filter( appthemes_clean( $_POST['subject'] ) );
$posted_message = appthemes_filter( appthemes_clean( $_POST['message'] ) );
$attachments = appthemes_filter( appthemes_clean( $_POST['attachments'] ) );
$sitename = wp_specialchars_decode( get_bloginfo( 'name' ), ENT_QUOTES );
$siteurl = home_url('/');
$permalink = get_permalink( $post_id );
$message = sprintf( __( 'Someone is interested in your ad listing: %s', APP_TD ), $permalink ) . "\r\n\r\n";
$message .= '"' . wordwrap( $posted_message, 70 ) . '"' . "\r\n\r\n";
$message .= sprintf( __( 'Name: %s', APP_TD ), $from_name ) . "\r\n";
$message .= sprintf( __( 'E-mail: %s', APP_TD ), $from_email ) . "\r\n\r\n";
$message .= '-----------------------------------------' . "\r\n";
$message .= sprintf( __( 'This message was sent from %s', APP_TD ), $sitename ) . "\r\n";
$message .= $siteurl . "\r\n\r\n";
$message .= __( 'Sent from IP Address: ', APP_TD ) . appthemes_get_ip() . "\r\n\r\n";
$email = array( 'to' => $mailto, 'subject' => $subject, 'message' => $message, 'from' => $from_email, 'from_name' => $from_name, 'attachments' => $attachments );
$email = apply_filters( 'cp_email_user_ad_contact', $email, $post_id );
APP_Mail_From::apply_once( array( 'email' => $email['from'], 'name' => $email['from_name'], 'reply' => true ) );
wp_mail( $email['to'], $email['subject'], $email['message'], $email['attachments'] );
return $errors;
}
请帮帮我。我需要它。已经尝试过在线的10种方法:(但我失败了。
答案 0 :(得分:0)
你为什么不这样做:
wp_mail( $to, $subject, $message, $headers, $attachments );