Feda /dev/ - No Javascript allowed

Normas
spoiler
Personas non gratas
Memes feda dev




B

#48120 ¡Sí, puedo ayudarte a enviar correos con adjuntos usando PHP! Para lograrlo, PHP tiene una función llamada mail() que te permite enviar correos electrónicos, y la librería PHPMailer que facilita el envío de correos con archivos adjuntos de manera más completa. A continuación, te mostraré cómo hacerlo utilizando ambas opciones.

Método 1: Usando la función mail()
Aquí tienes un ejemplo básico de cómo enviar un correo con un archivo adjunto usando la función mail() de PHP:

<?php
$destinatario = '[email protected]';
$asunto = 'Correo con adjunto';
$mensaje = 'Este es un correo con un archivo adjunto.';

$archivo_adjunto = 'ruta/al/archivo_adjunto.pdf';
$tipo_adjunto = 'application/pdf';
$nombre_adjunto = 'archivo_adjunto.pdf';

$encabezados = "From: [email protected]\r\n";
$encabezados .= "Reply-To: [email protected]\r\n";
$encabezados .= "MIME-Version: 1.0\r\n";
$encabezados .= "Content-Type: multipart/mixed; boundary=\"frontier\"\r\n";

$mensaje_completo = "--frontier\r\n";
$mensaje_completo .= "Content-Type: text/plain\r\n";
$mensaje_completo .= "Cuerpo del mensaje\r\n\r\n";

$mensaje_completo .= "--frontier\r\n";
$mensaje_completo .= "Content-Type: " . $tipo_adjunto . "\r\n";
$mensaje_completo .= "Content-Transfer-Encoding: base64\r\n";
$mensaje_completo .= "Content-Disposition: attachment; filename=\"" . $nombre_adjunto . "\"\r\n";
$mensaje_completo .= chunk_split(base64_encode(file_get_contents($archivo_adjunto))) . "\r\n";

$mensaje_completo .= "--frontier--";

// Envío del correo
if (mail($destinatario, $asunto, $mensaje_completo, $encabezados)) {
    echo "Correo enviado con éxito.";
} else {
    echo "Error al enviar el correo.";
}
?>

Asegúrate de cambiar las direcciones de correo electrónico, rutas de archivo y demás detalles según tus necesidades.

Método 2: Usando la librería PHPMailer
PHPMailer simplifica el proceso de envío de correos electrónicos y maneja automáticamente cuestiones de seguridad y compatibilidad. Para usar PHPMailer, primero debes descargar la librería desde su sitio web oficial (https://github.com/PHPMailer/PHPMailer) o a través de Composer.

A continuación, aquí tienes un ejemplo de cómo enviar un correo con archivo adjunto usando PHPMailer:

<?php
require 'ruta/del/PHPMailerAutoload.php';

$destinatario = '[email protected]';
$asunto = 'Correo con adjunto';
$mensaje = 'Este es un correo con un archivo adjunto.';

$archivo_adjunto = 'ruta/al/archivo_adjunto.pdf';
$nombre_adjunto = 'archivo_adjunto.pdf';

// Crear una nueva instancia de PHPMailer
$mail = new PHPMailer;

// Configuración del servidor de correo
$mail->isSMTP();
$mail->Host = 'smtp.example.com';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'tu_contraseña';

// Configuración del remitente y destinatario
$mail->setFrom('[email protected]', 'Nombre del Remitente');
$mail->addAddress($destinatario);

// Configuración del correo
$mail->Subject = $asunto;
$mail->Body = $mensaje;
$mail->addAttachment($archivo_adjunto, $nombre_adjunto);

// Envío del correo
if ($mail->send()) {
    echo "Correo enviado con éxito.";
} else {
    echo "Error al enviar el correo: " . $mail->ErrorInfo;
}
?>

Recuerda reemplazar las rutas y detalles de configuración del servidor de correo electrónico según tus necesidades.

La segunda opción usando PHPMailer es más recomendada, ya que proporciona una interfaz más robusta y segura para enviar correos con archivos adjuntos y maneja problemas comunes, como el filtrado de spam y problemas de codificación.

1 respuesta
Chefoxs

#48121 noooooo.

1 respuesta
aren-pulid0

#48122 pero si te ha respondido lo que querias

1 respuesta
Chefoxs

#48123 quería saber quien controlaba php...

Es porque estoy trabajando en una página que utiliza un php para llevar a cabo la gestión de crear un curl para un servicio que envía correo.

El servicio tiene dos versiones, el que funciona (y solo envía correo normal) envía un application/json y otro que envía correo con adjunto con multipart form data pero cuando intento de enviar por este método no reacciona nada en el servicio de correo.

Cómo la mierda esta montado en una página en react, lo que hago para que pruebe en mi maquina local de levantar mi página y crear un servidor php para ese mismo php, hago mi petición con postman con mi servicio de correo en local y funciona.

Pero cuando intento hacer todo desde la página para enviar adjunto no le llega nada al servicio de correo como si no existiera.

Ya no se si es por como se construye el curl en php, o por el servicio donde está montado, se me acabaron las ideas. Además de que tengo problemas en hacer pruebas en pre y tengo que subirlas en pro y probar dichos cambios y ya me da hasta vergüenza estár pidiendo en infraestructura que me haga la subida día si y día también xD

Hay alguna forma de debuggear un php "suelto"?

1 respuesta
B

#48124 Sí, hay varias formas de debuggear (depurar) un script PHP independiente o "suelto" (sin un entorno de desarrollo completo). Aquí te presento algunas opciones que puedes utilizar:

Uso de var_dump() o print_r(): Estas funciones te permiten imprimir el contenido de variables en el punto donde quieras inspeccionar el flujo del programa. Puedes usarlas para imprimir información relevante sobre las variables y así entender qué está sucediendo en diferentes puntos del código.

<?php
$variable = "Hola, mundo";
var_dump($variable); // Imprime el tipo y contenido de la variable
print_r($variable); // Imprime el contenido de la variable de manera legible
?>

Uso de die() o exit(): Puedes utilizar estas funciones para detener la ejecución del script en un punto específico y así observar el estado de las variables antes de esa línea de código.

<?php
$variable = "Hola, mundo";
echo "Antes del punto de interrupción";
die(); // Detiene la ejecución del script
echo "Después del punto de interrupción"; // Esta línea nunca se ejecutará
?>

Habilitar mensajes de error y advertencia: Si algo no funciona correctamente, asegúrate de que los mensajes de error y advertencia estén habilitados en la configuración de PHP. Puedes hacerlo a través del archivo php.ini o utilizando error_reporting y display_errors en el propio código:

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>

Uso de Xdebug: Xdebug es una herramienta de depuración de PHP más avanzada que proporciona una amplia gama de funciones útiles, como puntos de interrupción, seguimiento de variables, visualización de la pila de llamadas y más. Para usar Xdebug, necesitarás instalarlo y configurarlo. Puedes encontrar instrucciones en la documentación oficial de Xdebug.
Recuerda que, en un entorno de desarrollo completo, como un servidor local o en un entorno en línea, tendrás más opciones y comodidades para depurar PHP. Sin embargo, las técnicas mencionadas anteriormente son útiles para debuggear un script PHP independiente cuando no tienes acceso a un entorno de desarrollo más completo.

5
Traber

¿Alguien ha probado Llama2?

Como los 137GB tengan que estar cargados en memoria, creo que hasta 2025 no podré probarlo :joy:

2 respuestas
KarlosWins

.

1 respuesta
desu

#48126 No carga todo. Aqui tienes a jart explicando como funciona en el llama.cpp:
https://github.com/ggerganov/llama.cpp/discussions/638#discussioncomment-5492916

El de 13B consume 10GiB
https://gist.github.com/adrienbrault/b76631c56c736def9bc1bc2167b5d129

#48127 Correcto. Es el que se uso para entrenar a @desu en 1 datacenter de Google.

1 respuesta
Traber

#48128 Pues estoy jodido, porque me estoy bajando el 70B y mi server solo tiene 12GB de RAM xD

2 respuestas
PaCoX

el unico lugar dnd ha entrenado desu es en el gym gay WELLNESS CLUB 33

Lolerpopler

#48129 google colab? o algo asi? Uno en mi empresa tenia el mismo problema, velocidad de descarga y recursos disponibles en su maquina. Lo acabo montando en google colab en una mañana. He visto pro reddit que hay versiones que funcionan con la free tier

desu

#48129 lo han entrenado con el doble de tokens, con el de 15 deberias tener unos resultados como el antiguo 30.

pantocreitor

Una oferta buena que ponen el foro y @Jastro le chapa el hilo xD

Era una app unicornio tío!

1 respuesta
JuAn4k4

La ha puesto dos veces de lo buena que es. No sabe cumplir unas normas básicas en el foro y desobedece y luego vas a esperar tú a que te de algo de dinero mientras el mira su unicornio salir volando.

1 respuesta
pantocreitor

#48134 nah, estaba aburrido esperando en el coche y quería trolearle un rato.

La gente a veces parece que está malita

frekaice

#48133 No quiere que nos hagamos ricos antes que él :joy:

desu

Que tal ahora sin el ruso toxico de tu equipo? @JuAn4k4

1 respuesta
PaCoX

ahora el toxico es el :rofl:

LLoid

9
JuAn4k4

#48137 De maravilla.

desu

Dicen que el ruso ha empezado a currar en una nueva app unicornio que esta haciendo bastante ruido.

2
isvidal

que puto asco da programar en algo que no sea javascript de verdad

2 2 respuestas
PaCoX

11 1 respuesta
Wei-Yu

menudo puto personaje tengo como tech lead anda lleva 1 año en la empresa y aún no sabe mirar los logs ni dónde están

aren-pulid0

#48142 rust?

Zireael

#48142 Qué puto asco da programar en algo que sea JavaScript*

1
R

programar y javascript, nah me salgo del hilo

Zoko

#48143

Esos memes buenos de cuando te enseñan que es un array por primera vez, a ver si los vamos renovando jeje

S

alinea divs confirmed?

1 respuesta
Kaledros

Lo primero que hice en el CFGS en 2009 fue aprender a operar con binarios en papel y lápiz, que es algo que entró en el primer examen y todo. Y siendo un pipiolo que no sabía ni lo que era un system out ya tenía claro que pocas cosas más inútiles que esa y que había que tener poca idea de nada como para enseñar esa mierda o pensar que era algo útil.

Compruebo con agrado como no me equivocaba.

3 respuestas