Ekleri olan ancak alınan ekleri olmayan wp_mail kullanma


15

Ben dahil olmak üzere birden örneklere bakarak edilmiştir bu bir .

E-postayı sorun değil ama ekleri yok. Dosya türünün içeriğini / türünü eksik mi? Gördüğüm tüm örnekler, içerik türü olarak yalnızca text / html kullanır.

İşte sahip olduğum şey (Stephen'ın isteği üzerine eklendi)

if( isset( $_POST['to'] ) && isset( $_POST['from'] ) ) {
global $wpdb;

$to = $_POST['to'];
$from = $_POST['from']; 
$name = get_bloginfo('name');
$attachment = $_POST['file'];
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: multipart/mixed; charset=iso-8859-1' . "\r\n";

$headers .= 'From: ' . $name . ' <' . $from . '>' . "\r\n";   
$subject = 'Send to Kindle';
$msg = 'Yay! Your book has <a href="http://yahoo.com">arrived</a>';

$mail_attachment = array( $attachment );
wp_mail($to, $subject, $msg, $headers, $mail_attachment);
echo 'Email sent';
} else {
echo 'Email not sent';
}

Denediklerinizle ilgili bazı kodlar gönderebilir misiniz?
Stephen Harris

Merhaba Stephen, gönderiyi kodla güncelledi. Teşekkür ederim!
tbm

Yanıtlar:


27

İçin $attachmentargüman wp_mailbir dosya (veya dosya dizisi) alır - ancak dosya yolunun tam olarak belirtilmesi gerekir. Örneğin:

<?php
   $attachments = array(WP_CONTENT_DIR . '/uploads/file_to_attach.zip');
   $headers = 'From: My Name <myname@mydomain.com>' . "\r\n";
   wp_mail('test@test.com', 'subject', 'message', $headers, $attachments);
?>

( bkz. Kodeks ). Görünüşe göre $_POST['file'], muhtemelen tam yolu belirtmiyorsunuz .

Ek, bir URL'ye değil, bir dosya yoluna sahip . Aşağıdakiler benim için çalıştı:

$to = $_POST['to'];
$from = $_POST['from']; 
$name = get_bloginfo('name');

$headers = 'From: My Name <myname@mydomain.com>' . "\r\n";

$subject = 'Send to Kindle';

$msg = 'Yay! Your book has <a href="http://yahoo.com">arrived</a>';

$mail_attachment = array(WP_CONTENT_DIR . '/uploads/2012/03/image.png');   

wp_mail($to, $subject, $msg, $headers, $mail_attachment);

Not:headers Özelliği de değiştirdim . Örneğinizin ne yapmaya çalıştığından tam olarak emin değilim, ancak e-postanın mesajının bazı e-posta istemcilerinde görünmediği anlamına geliyordu.


Takip ettiğiniz için teşekkür ederim Stephen ... Tamam $_Post['file']aslında dosya için bir URL ve URL'nin doğru olduğunu onayladım. Kabul edilebilir mi?
tbm

Hayır, güncellenmiş cevaba bakın :)
Stephen Harris

Yani Amazon S3 gibi başka bir yerde barındırılan bir ek göndermelerini sağlayamıyorum? Bundan korkuyordum. Sadece insanlara doğrudan web sayfasından Kindle'a PDF e-posta gönderme seçeneği sunmaya çalışıyorum. Her neyse bunu daha sonra deneyeceğim ve rapor vereceğim.
tbm

Uzak dosyayı okuyabilir, sonra ekleyebilir misiniz? Burada bir örnek var . Tam olarak nasıl yapabileceğiniz / en iyi uygulama SO için bir soru olacaktır.
Stephen Harris

Çok teşekkür ederim Stephen çözümünüzü denedim ve işe yaradı. Şimdi ... Başka bir yerde barındırılan eki nasıl göndereceğimi bulmalıyım. Nereye bakacağınız için teşekkürler!
tbm
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.