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.