Advertencia: algunas funciones de esta página requieren un navegador o Sistema Operativo más actualizado que el que está utilizando. Si tiene un navegador diferente disponible, abra esta página con él.
Enviar correo electrónico utilizando el cliente SMTP
Documentación API
Enviar Email
Comandos SMTP
Informacion
Código de Ejemplo
Email enviado, log SMTP
Error de Email, log SMTP
- Esta página le permite ver un ejemplo en vivo de comunicación entre el cliente SMTP y los servidores SMTP ampliamente utilizados.
- Seleccione un servidor SMTP de la lista y luego se llamará al código que se muestra a continuación.
- A veces habrá un retraso. Es probable que esto sea un retraso forzado del servidor SMTP para reducir la velocidad y bloquear los spammers. La llamada que se retrasa se mostrará claramente en el resultado del registro.
- Normalmente, SMTP se usa simplemente para enviar correos electrónicos salientes, sin embargo, los comandos básicos pueden ser utilizados por un script automatizado para verificar si el servidor funciona correctamente.
// Devolución de llamada de depuración opcional para
// registrar llamadas SMTP y responder líneas
$reply_lines = [];
$debug_callback = function($message) use (&$reply_lines) {
$reply_lines[] = '[' . date('H:i:s') . '] ' . trim($message);
};
// Crear objeto SMTP y llamar a varios comandos (métodos API)
$smtp = new SmtpClient($host, $port, $timeout, $debug_callback);
$smtp->help();
$smtp->noop();
$smtp->quit();
$smtp->close();
¿Por qué usar FastSitePHP para SMTP y correo electrónico?
- API fácil de usar
- Gran rendimiento y requerimientos mńimos de memoria
- Todos los códigos SMTP y de correo electrónico existen en solo 2 archivos pequeños (cada archivo es una Clase separada). Todo el código está bien comentado y no hay código capcioso. Por seguridad, está claro lo que está sucediendo con el código.
- Las Clases están diseñadas en torno a la seguridad y la fiabilidad, al tiempo que admiten las funciones de correo electrónico necesarias
- Soporte Unicode, incluido el uso de direcciones de correo electrónico Unicode
- Fácil de incluir archivos adjuntos
- Fácil para depurar la comunicación SMTP (comandos de envío y respuesta)
Otros clientes de correo electrónico SMTP de PHP
FastSitePHP solo es compatible con SMTP. Si necesita usar [sendmail], se recomienda la codificación que no sea UTF8, DKIM, Auth usando XOAUTH2 o una función de correo electrónico no compatible, uno de los siguientes proyectos PHP ampliamente utilizados.
Clientes SMTP en otros lenguajes de programación
- JavaScript (Node) https://nodemailer.com/about/
- Python https://docs.python.org/3/library/smtplib.html
- Ruby Mail https://rubygems.org/gems/mail/
- Ruby SMTP https://ruby-doc.org/stdlib/libdoc/net/smtp/rdoc/Net/SMTP.html
- C# / .Net https://docs.microsoft.com/en-us/dotnet/api/system.net.mail
- Go Lang https://golang.org/pkg/net/smtp/
// Crear un objeto de correo electrónico. El objeto de correo electrónico
// también se puede crear sin especificar ningún parámetro.
$email = new \FastSitePHP\Net\Email($from, $to, $subject, $body);
// Todas las propiedades se pueden leer y configurar a través
// de funciones getter/setter.
$email
->allowUnicodeEmails(true) // Para soporte con direcciones de correo electrónico Unicode
->from(['无回复@example.com', 'Sin respuesta'])
->replyTo('test@example.com')
->to(['email1@example.com', 'email2@example.com'])
->cc('email3@example.com')
->bcc('email4@example.com')
->priority('High') // ['High', 'Normal', or 'Low']
->safeHeaderNames(true) // El valor predeterminado es [true] para campos personalizados
->header('X-Transaction-ID', '123abc')
->encodeFileNames(true)
->attachFile($file_path)
->isHtml(true) // El valor predeterminado es [true]
->subject($subject)
->body($body);
// Enviar correo electrónico utilizando el Protocolo simple de transferencia
// de correo (SMTP). La configuración [$smtp = null] después del uso llama
// automáticamente [$smtp->quit()] y [$smtp->close()], sin embargo, también
// ocurre automáticamente después de que el objeto ya no se usa.
$smtp = new \FastSitePHP\Net\SmtpClient($host, $port);
if ($user) {
$smtp->auth($user, $password);
}
$smtp->send($email);
$smtp = null;
// Cree un cliente con un tiempo de espera de 2 segundos y con depuración para
// mostrar todos los datos enviados al servidor SMTP y todas las líneas de respuesta
$timeout = 2;
$callback = function($message) {
echo '[' . date('H:i:s') . '] ' . trim($message) . "\n";
};
$smtp = new \FastSitePHP\Net\SmtpClient($host, $port, $timeout, $callback);