Hoje quero apenas documentar um exemplo de utilizacao da classe Mail do PEAR para envio de emails em formato HTML com imagem anexada e associada no HTML. Ja havia trabalhado antes com esta biblioteca, mas eu nao enviava emails em HTML e muito menos com imagem associada.A primeira motivacao para documentar este exemplo foi porque nao encontrei bons exemplos da utilizacao desta biblioteca em sites nacionais. Eu queria ter encontrado em sites nacionais para poder entender como trabalhar com texto com acentuacao. Para poder executar o codigo de exemplo certifique-se de instalar as bibliotecas Mail e Mail_mime do PEAR. (Nao vou explicar aqui como usar o PEAR nem como instalar nem como baixar as bibliotecas dele).O conceito chave aqui para enviar email com conteudo HTML e com acentuacao esta relacionado com o encoding e charset do texto. Nao vou explicar este conceito aqui pois nao e o intuito do documento. Mas basicamente, encoding e a representacao interna dos dados e o charset e o conjunto de caracteres suportado.A ideia e que se representarmos os dados com UTF-8 (usando o encoding UTF-8), teremos um charset bem maior do que usando a codificacao ASCII.Quando nao utilizamos a codificacao correta o que acontece e que acabam aparecendo caracteres especiais no meio do texto certa vez um cliente chamou isso de "caracteres mastigados" ahhahahah...Para resolver este problema, o bloco de codigo abaixo foi quem ajudou:$enc = 'utf-8';$mime = new Mail_mime(array( 'eol' => "\n", 'text_encoding' => $enc, 'html_encoding' => $enc, 'html_charset' => $enc, 'text_charset' => $enc));Bom, mas e para enviar o email como HTML? A saida esta em usar a propria classe Mail_mime.Esta classe fornece os metodos setTXTBody e setHTMLBody conforme o exemplo de utilizacao abaixo:$mime->setTXTBody($text);$mime->setHTMLBody($html);Usando os metodos acima, basta criar um texto (por exemplo usando a variavel $html) com conteudo html mesmo, ou seja, abrir as tags e marcar o texto necessario.Mas uma das coisas que achei interessante em enviar um email com conteudo HTML foi utilizar imagens no HTML. Como associar um arquivo de imagem se voce nao sabe se a imagem existe no computador do cliente? Outra questao e que o HTML e carregado no client e a pagina nao e acessada de um servidor meu! Entao a ideia e anexar a imagem no email e referencia-la dentro do HTML.A imagem pode ser associada atraves do seguinte codigo:$mime->addHTMLImage("arquivo.png", "application/octet-stream", "imagem", true, "minhaimagem");Onde o primeiro argumento e o nome do arquivo no seu servidor, o segundo argumento e o mime-type da imagem, o terceiro e o nome do arquivo, o quarto indica se o nome "imagem" e um nome de arquivo ou nao e o ultimo parametro e um codigo para usar como referencia no seu HTML.Veja abaixo um exemplo de referencia no HTML para esta imagem que foi anexada:Bom, agora segue o codigo completo do exemplo: 'meuemail@yahoo.com.br', 'To' => $email, 'Subject' => "bem vindo ao mundo do php" );// aqui temos os dados de autenticacao da conta de email// hoje a maioria dos servidores de email trabalham com// autenticacao via SMTP. Antigamente, muitos servidores// famosos de email nao possuiam autenticacao, o que tornava// facil