<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog da Hostweb &#187; mail</title>
	<atom:link href="http://blog.hostweb.com.br/tag/mail/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.hostweb.com.br</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Mon, 23 Aug 2010 15:01:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Enviando anexo com a função mail do Php</title>
		<link>http://blog.hostweb.com.br/enviando-anexo-com-a-funcao-mail-do-php/hostweb</link>
		<comments>http://blog.hostweb.com.br/enviando-anexo-com-a-funcao-mail-do-php/hostweb#comments</comments>
		<pubDate>Mon, 30 Nov 2009 11:25:57 +0000</pubDate>
		<dc:creator>Giordano Alves</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[mail]]></category>

		<guid isPermaLink="false">http://blog.hostweb.com.br/?p=89</guid>
		<description><![CDATA[A função mail do Php por padrão não oferece um parâmetro para enviar anexos. Mas tem um jeito sim de enviar anexos através dela.
O código a seguir mostra exatamente como enviar arquivos anexo atraves da função mail:
$boundary = strtotime(&#8217;NOW&#8217;);
$headers = &#8220;From: Eu \n&#8221;;
$headers .= &#8220;MIME-Version: 1.0\n&#8221;;
$headers .= &#8220;Content-Type: multipart/mixed; boundary=\&#8221;" . $boundary . &#8220;\&#8221;\n&#8221;;
$msg = [...]]]></description>
			<content:encoded><![CDATA[<p>A função <a title="mail" href="http://php.net/manual/en/function.mail.php" target="_blank">mail</a> do <a title="Php" href="http://www.php.net/" target="_blank">Php</a> por padrão não oferece um parâmetro para enviar anexos. Mas tem um jeito sim de enviar anexos através dela.</p>
<p>O código a seguir mostra exatamente como enviar arquivos anexo atraves da função mail:</p>
<div id="code">$boundary = strtotime(&#8217;NOW&#8217;);<br />
$headers = &#8220;From: Eu \n&#8221;;<br />
$headers .= &#8220;MIME-Version: 1.0\n&#8221;;<br />
$headers .= &#8220;Content-Type: multipart/mixed; boundary=\&#8221;" . $boundary . &#8220;\&#8221;\n&#8221;;<br />
$msg = &#8220;&#8211;&#8221; . $boundary . &#8220;\n&#8221;;<br />
$msg .= &#8220;Content-Type: text/plain; charset=\&#8221;iso-8859-1\&#8221;\n&#8221;;<br />
$msg .= &#8220;Content-Transfer-Encoding: quoted-printable\n\n&#8221;;<br />
$msg .= &#8220;Aqui eu escrevo o texto do email\n&#8221;;<br />
$msg .= &#8220;&#8211;&#8221; . $boundary . &#8220;\n&#8221;;<br />
$msg .= &#8220;Content-Transfer-Encoding: base64\n&#8221;;<br />
$msg .= &#8220;Content-Disposition: attachment; filename=\&#8221;imagem.gif\&#8221;\n\n&#8221;;ob_start();<br />
readfile(&#8221;imagem.gif&#8221;);<br />
$enc = ob_get_contents();<br />
ob_end_clean();<br />
$msg_temp = base64_encode($enc). &#8220;\n&#8221;;</p>
<p>$tmp[1] = strlen($msg_temp);<br />
$tmp[2] = ceil($tmp[1]/76);for ($b = 0; $b &lt;= $tmp[2]; $b++) {<br />
$tmp[3] = $b * 76;     $msg .= substr($msg_temp, $tmp[3], 76) . &#8220;\n&#8221;;<br />
}</p>
<p>unset($msg_temp, $tmp, $enc);<br />
mail(&#8221;para@email.com.br&#8221;, &#8220;Assunto&#8221;, $msg, $headers);<br />
?&gt;</p></div>
<p>Vamos a parte que nos interessa:</p>
<p><span id="more-89"></span></p>
<div id="code">$msg .= &#8220;&#8211;&#8221; . $boundary . &#8220;\n&#8221;;<br />
$msg .= &#8220;Content-Transfer-Encoding: base64\n&#8221;;<br />
$msg .= &#8220;Content-Disposition: attachment; filename=\&#8221;imagem.gif\&#8221;\n\n&#8221;;</p>
<p>ob_start();<br />
readfile(&#8221;imagem.gif&#8221;);<br />
$enc = ob_get_contents();<br />
ob_end_clean();</p>
<p>$msg_temp = base64_encode($enc). &#8220;\n&#8221;;<br />
$tmp[1] = strlen($msg_temp);<br />
$tmp[2] = ceil($tmp[1]/76);</p>
<p>for ($b = 0; $b &lt;= $tmp[2]; $b++) {<br />
$tmp[3] = $b * 76;<br />
$msg .= substr($msg_temp, $tmp[3], 76) . &#8220;\n&#8221;;<br />
}</p></div>
<p>Esta parte define a imagem em si! Primeiramente eu envio os identificadores de anexo, com o nome do anexo. Mais embaixo, eu pego o conteúdo do arquivo ( readfile(&#8221;imagem.gif&#8221;); ) e o encripto com o base64 (formato padrão dos anexos no email!).</p>
<p>É nessa parte que tem que se tomar cuidado, pois pelo RFC as linhas do email não podem ser muito grandes. Por isso o FOR &#8220;quebra&#8221; o conteudo do arquivo em pedaços de 76 caracteres!</p>
<p style="text-align: justify;">Pronto, com esse script seu form ira enviar email com anexo.</p>
<p style="text-align: justify;">Até a próxima!</p>
<p style="text-align: justify;">
<p style="text-align: justify;">Fonte: <a title="Php Brasil" href="http://www.phpbrasil.com/articles/article.php/id/661" target="_blank">Php Brasil</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hostweb.com.br/enviando-anexo-com-a-funcao-mail-do-php/hostweb/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
