Aviso - alguns recursos desta página requerem um navegador ou sistema operacional mais recente que o que você está usando no momento. Se você tiver um navegador diferente disponível, abra esta página com ele.
Enviar E-mail utilizando o cliente SMTP
Documentação da API
Enviar E-mail
Comandos SMTP
Informações
Código de Exemplo
E-mail enviado, Log SMTP
Erro de E-mail, Log SMTP
- Esta página possibilita que você veja um exemplo em tempo real de comunicação entre o Cliente SMTP e Servidores SMTP amplamente utilizados.
- Selecione um Servidor SMTP da lista e então o código mostrado abaixo será chamado.
- Em alguns momentos haverá um atraso. Isso é provavelmente devido a um atraso forçado pelo Servidor SMTP para retardar e bloquear spammers. A chamada que for adiada será mostrada no relatório do log.
- Geralmente SMTP é simplesmente usado para envio de e-mails no entanto comandos básicos pode ser utilizados por um script automatizado para verificar se o servidor está funcionando corretamente.
// Callback opcional de Depuração para registrar (log) chamadas SMTP e linhas de
// respostas
$reply_lines = [];
$debug_callback = function($message) use (&$reply_lines) {
$reply_lines[] = '[' . date('H:i:s') . '] ' . trim($message);
};
// Cria um Objeto SMTP e chama vários comandos (métodos API)
$smtp = new SmtpClient($host, $port, $timeout, $debug_callback);
$smtp->help();
$smtp->noop();
$smtp->quit();
$smtp->close();
Por que utilizar o FastSitePHP para SMTP e E-mail
- API de fácil utilização
- Alto desempenho e baixíssimo uso de memória
- Todos os códigos de SMTP e E-mail existem em somente dois pequenos arquivos (cada um uma classe separada). Todo os códigos estão muito bem comentados e não há código mágico. Para segurança é claro o que está acontecendo no código.
- A Classes são projetadas visando segurança e confiabilidade, suportando recursos necessário de e-mail
- Suporte a Unicode incluindo endereços de e-mail em Unicode
- Anexos de fácil inclusão
- Comunicação SMTP de fácil depuração (comandos de envio e reposta)
Outros Clientes de E-mail SMTP em PHP
O FastSitePHP suporta somente SMTP. Se você precisa utilizar [sendmail], codificação diferente de UTF8, DKIM, Auth usando XCAUTH2 ou um recurso de e-mail não suportado, um dos seguintes projetos PHP é recomendado.
Clientes SMTP em outras Linguagens de Programação
- 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/
// Cria um Objeto E-mail. O Objeto E-mail pode também ser criado sem
// especificar parâmetros.
$email = new \FastSitePHP\Net\Email($from, $to, $subject, $body);
// Todas propriedades podem ser lidas e definidas através de funções
// getter/setter.
$email
->allowUnicodeEmails(true) // Para suporte a Endereços de E-mail Unicode
->from(['无回复@example.com', 'No Reply'])
->replyTo('test@example.com')
->to(['email1@example.com', 'email2@example.com'])
->cc('email3@example.com')
->bcc('email4@example.com')
->priority('High') // ['High', 'Normal' ou 'Low']
->safeHeaderNames(true) // Padrão [true] para campos personalizados
->header('X-Transaction-ID', '123abc')
->encodeFileNames(true)
->attachFile($file_path)
->isHtml(true) // Padrão [true]
->subject($subject)
->body($body);
// Envia e-mail utilizando Simple Mail Transfer Protocol (SMTP).
// Defininaod [$smtp = null] depois do uso, automaticamente chama [$smtp->quit()]
// e [$smtp->close()], entretanto isto também acontece automaticamente depois
$smtp = new \FastSitePHP\Net\SmtpClient($host, $port);
if ($user) {
$smtp->auth($user, $password);
}
$smtp->send($email);
$smtp = null;
// Cria um Cliente com uma expiração de 2 segundos e com a depuração para
// mostrar todos os dados enviados para o Servidor SMTP e todas as linhas de
// resposta
$timeout = 2;
$callback = function($message) {
echo '[' . date('H:i:s') . '] ' . trim($message) . "\n";
};
$smtp = new \FastSitePHP\Net\SmtpClient($host, $port, $timeout, $callback);