Eu estive olhando para vários exemplos, incluindo este .
Recebo o email sem problemas, mas não há anexos. Estou faltando o conteúdo / tipo de tipo de arquivo? Todos os exemplos que eu vi usam apenas text / html como tipo de conteúdo.
Aqui está o que eu tenho (adicionado a pedido de Stephen)
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';
}
Respostas:
O
$attachment
argumento parawp_mail
pega um arquivo (ou matriz de arquivos) - mas o caminho do arquivo deve ser totalmente especificado. Por exemplo:( veja Codex ). Parece que você
$_POST['file']
provavelmente não está especificando o caminho completo.O anexo tem um caminho de arquivo , não um URL. O seguinte funcionou para mim:
Nota: Eu mudei o
headers
atributo também. Não tenho certeza do que seu exemplo estava tentando fazer, mas isso significava que a mensagem do email não estava visível em alguns clientes de email.fonte
$_Post['file']
é realmente um URL para o arquivo e confirmei que o URL está correto. Isso é aceitável?