it-swarm.com.de

wp_mail Anhang funktioniert nicht

Hallo, ich versuche, E-Mails mit einem Anhang zu senden, indem ich die WordPress-Funktion wp_mail verwende, aber in meiner Mailbox wird kein Anhang angezeigt.

Kannst du bitte meinen untenstehenden Code überprüfen und mich dahin führen, wo ich falsch liege? Sie können sehen, dass ich Bild im Anhang säte.

<?php
    $to  = '[email protected]';
    $subject = 'WordPress wp_mail';
    $message = '
    <html>
    <body>
        <table rules="all" style="border-color: #666;" cellpadding="10">
          <tr>Hello WordPress</tr>
        </table>          
    </body>
    </html>
    ';

    $attachments = array( 'http://sitename/project/wp-content/plugins/my-plugin/uploads/sample_photo_01.jpg' );
    //$attachments = array(WP_CONTENT_DIR  . '/uploads/'.$_FILES["myfile"]["name"]);
    $headers[] = 'MIME-Version: 1.0' . "\r\n";
    $headers[] = 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    $headers[] = 'From: '.get_option( 'blogname' ).' <'.get_option( 'admin_email' ).'>';

    wp_mail( $to, $subject, $message, $headers, $attachments );
?>

Vielen Dank.

1
Manan

Anhänge sollten immer den absoluten Dateisystempfad verwenden.

Um auch den Content-Type der E-Mail zu ändern, sollten Sie den wp_mail_content_type-Filter verwenden.

<?php
function my_custom_email() {
    $to  = '[email protected]';
    $subject = 'WordPress wp_mail';
    $message = '
    <html>
    <body>
        <table rules="all" style="border-color: #666;" cellpadding="10">
          <tr>Hello WordPress</tr>
        </table>          
    </body>
    </html>
    ';

    $attachments = array(  WP_PLUGIN_DIR . '/my-plugin/uploads/sample_photo_01.jpg' );
    $headers[] = 'From: '.get_option( 'blogname' ).' <'.get_option( 'admin_email' ).'>';
    add_filter( 'wp_mail_content_type', 'my_custom_email_content_type' );
    return wp_mail( $to, $subject, $message, $headers, $attachments );
}

function my_custom_email_content_type() {
    return 'text/html';
}

Ich habe den gesamten Code in eine Funktion eingefügt, sodass der wp_mail_content_type-Filter nur für diese E-Mail gilt.

Quellen:
http://codex.wordpress.org/Function_Reference/wp_mail
http://codex.wordpress.org/Plugin_API/Filter_Reference/wp_mail_content_type

6
A.Jesin

Sie können diesen Code ausprobieren

  $attachments = array( WP_CONTENT_DIR . '/uploads/file_to_attach.Zip' );
   $headers = 'From: My Name <[email protected]>' . "\r\n";
   wp_mail('[email protected]', 'subject', 'message', $headers, $attachments );

Ich erhalte es von http://codex.wordpress.org/Function_Reference/wp_mail

0
Maidul