He estado mirando múltiples ejemplos, incluido este .
Recibo el correo electrónico sin problemas pero no hay archivos adjuntos. ¿Me falta el contenido / tipo de tipo de archivo? Todos los ejemplos que he visto usan solo texto / html como tipo de contenido.
Esto es lo que tengo (agregado 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';
}
Respuestas:
El
$attachment
argumento parawp_mail
toma un archivo (o una matriz de archivos), pero la ruta del archivo debe especificarse por completo. Por ejemplo:( Ver Codex ). Parece que
$_POST['file']
probablemente no esté especificando la ruta completa.El archivo adjunto tiene una ruta de archivo , no una url. Lo siguiente funcionó para mí:
Nota: también cambié el
headers
atributo. No estoy completamente seguro de lo que su ejemplo intentaba hacer, pero significaba que el mensaje del correo electrónico no era visible en algunos clientes de correo electrónico.fuente
$_Post['file']
realidad es una URL del archivo y he confirmado que la URL es correcta. ¿Es eso aceptable?