첨부 파일이 있지만 첨부 파일이없는 wp_mail 사용


15

예제를 포함하여 여러 예제를 살펴 보았습니다 .

이메일에 문제가 없지만 첨부 파일이 없습니다. 파일 형식의 내용 / 유형이 누락 되었습니까? 내가 본 모든 예제는 텍스트 유형을 컨텐츠 유형으로 사용합니다.

여기 내가 가진 것입니다 (스티븐의 요청에 따라 추가되었습니다)

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';
}

시도한 것에 관한 코드를 게시 할 수 있습니까?
Stephen Harris

안녕 스티븐, 방금 코드로 게시물을 업데이트했습니다. 감사합니다!
tbm

답변:


27

에 대한 $attachment인수 wp_mail는 파일 (또는 파일 배열) 을 취하지 만 파일 경로는 완전히 지정해야합니다. 예를 들면 다음과 같습니다.

<?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);
?>

( 코덱 참조 ). $_POST['file']아마도 전체 경로를 지정하지 않은 것 같습니다 .

첨부 파일은 URL이 아닌 파일 경로 에 있습니다. 다음은 나를 위해 일했습니다.

$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);

참고 :headers 속성도 변경했습니다 . 귀하의 모범이 무엇을하려고했는지는 확실하지 않지만 일부 이메일 클라이언트에서는 이메일 메시지가 보이지 않습니다.


후속 조치에 대해 Stephen에게 감사드립니다 ... $_Post['file']실제로 파일의 URL이며 URL이 올바른지 확인했습니다. 괜찮습니까?
tbm

아니요, 업데이트 된 답변 참조 :)
Stephen Harris

즉, Amazon S3와 같은 다른 곳에서 호스팅되는 첨부 파일을 보낼 수 없습니다. 나는 그것을 두려워했다. 사람들에게 웹 페이지에서 직접 PDF 파일을 Kindle로 이메일로 보낼 수있는 옵션을 제공하려고합니다. 어쨌든 나는 이것을 시도하고 다시보고합니다.
tbm

원격 파일을 읽고 첨부 할 수 있습니까? 여기에 예가 있습니다 . 정확히 어떻게 할 수 있는지 / 모범 사례는 SO에 대한 질문입니다.
Stephen Harris

스티븐 내가 당신의 해결책을 시도하고 작동했습니다 너무 감사합니다. 이제 ... 다른 곳에서 호스팅 된 첨부 파일을 보내는 방법을 알아야합니다. 포인터를 찾아 주셔서 감사합니다!
tbm
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.