tag:blogger.com,1999:blog-71967473867058818292024-03-05T02:33:48.182-08:00Blog do DesenvolvedorDicas e Truques para várias linguagens, destinado aos desenvolvedores de plantão.Foxconn Sistemas Inteligenteshttp://www.blogger.com/profile/17038091639381760100noreply@blogger.comBlogger2125tag:blogger.com,1999:blog-7196747386705881829.post-4077251482495259022019-04-16T06:03:00.001-07:002019-04-16T06:03:29.684-07:00<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="margin-left: 1em; margin-right: 1em;">
<img alt="Resultado de imagem para email php + gmail" height="223" src="data:image/jpeg;base64,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" width="400" /></div>
<div style="margin-left: 1em; margin-right: 1em;">
<br /></div>
<div style="margin-left: 1em; margin-right: 1em;">
<br /></div>
<div style="margin-left: 1em; margin-right: 1em;">
<br /></div>
<h2 style="margin-left: 1em; margin-right: 1em;">
<span style="font-family: Arial, Helvetica, sans-serif;">Problemas ao tentar enviar email com ZendFramework 2 ou 3.0 ?</span></h2>
<div style="margin-left: 1em; margin-right: 1em;">
<br /></div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
Ao tentar enviar e-mail, tive alguns problemas e decidi fazer este post, porque notei que foi muito difícil achar de fato uma solução para o problema.</div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
<br /></div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
Então fiz vários testes de envio, todos conforme a documentação da Zend 2.0.</div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
Email:</div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
<a href="https://framework.zend.com/manual/2.1/en/modules/zend.mail.transport.html">https://framework.zend.com/manual/2.1/en/modules/zend.mail.transport.html</a></div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
Opções de Protocolo:</div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
<a href="https://framework.zend.com/manual/2.1/en/modules/zend.mail.smtp.options.html">https://framework.zend.com/manual/2.1/en/modules/zend.mail.smtp.options.html</a></div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
<br /></div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
O mais indicado foi:</div>
<div class="rubric" id="zend-mail-smtp-options-quick-start-plain-smtp-with-ssl-usage" style="background-color: white; box-sizing: border-box; color: #0f1419; font-family: Lato, sans-serif; font-size: 16px; margin-bottom: 12px; margin-top: 10px; padding: 0px; text-align: start;">
SMTP Transport Usage with PLAIN AUTH over TLS</div>
<br />
<div class="highlight-php" style="background-color: white; box-sizing: border-box; color: #0f1419; font-family: Lato, sans-serif; font-size: 16px; margin: 0px 0px 18px; overflow: auto; padding: 0px;">
<table class="highlighttable" style="background-attachment: scroll; background-clip: initial; background-image: none; background-origin: initial; background-position: 0px 0px; background-repeat: repeat; background-size: initial; border-collapse: collapse; border-radius: 3px; border-spacing: 0px; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; margin: 0px; padding: 0px; width: 750px;"><tbody style="box-sizing: border-box; margin: 0px; padding: 0px;">
<tr style="box-sizing: border-box; margin: 0px; padding: 0px;"><td class="linenos" style="border: medium none; box-sizing: border-box; color: #333333; margin: 0px; padding: 5px; vertical-align: top; width: 29px;"><div class="linenodiv" style="box-sizing: border-box; margin: 0px; padding: 0px;">
<pre style="background-color: whitesmoke; border-radius: 4px; border: medium none; box-sizing: border-box; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 16px; line-height: 1.42857; overflow-wrap: break-word; overflow: auto; padding: 0px; word-break: break-all;"> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17</pre>
</div>
</td><td class="code" style="border: medium none; box-sizing: border-box; color: #333333; margin: 0px; overflow: auto; padding: 0px; vertical-align: top;"><div class="highlight" style="background: none 0px 0px repeat scroll rgb(238, 255, 204); box-sizing: border-box; margin: 0px; overflow: auto; padding: 5px;">
<pre style="background-color: transparent; border-radius: 4px; border: medium none; box-sizing: border-box; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 16px; line-height: 1.42857; overflow-wrap: break-word; overflow: auto; padding: 0px; word-break: break-all;"><span class="k" style="box-sizing: border-box; color: #007020; font-weight: bold; margin: 0px; padding: 0px;">use</span> <span class="nx" style="box-sizing: border-box; margin: 0px; padding: 0px;">Zend\Mail\Transport\Smtp</span> <span class="k" style="box-sizing: border-box; color: #007020; font-weight: bold; margin: 0px; padding: 0px;">as</span> <span class="nx" style="box-sizing: border-box; margin: 0px; padding: 0px;">SmtpTransport</span><span class="p" style="box-sizing: border-box; margin: 0px; padding: 0px;">;</span>
<span class="k" style="box-sizing: border-box; color: #007020; font-weight: bold; margin: 0px; padding: 0px;">use</span> <span class="nx" style="box-sizing: border-box; margin: 0px; padding: 0px;">Zend\Mail\Transport\SmtpOptions</span><span class="p" style="box-sizing: border-box; margin: 0px; padding: 0px;">;</span>
<span class="c1" style="box-sizing: border-box; color: #408090; font-style: italic; margin: 0px; padding: 0px;">// Setup SMTP transport using PLAIN authentication over TLS</span>
<span class="nv" style="box-sizing: border-box; color: #bb60d5; margin: 0px; padding: 0px;">$transport</span> <span class="o" style="box-sizing: border-box; color: #666666; margin: 0px; padding: 0px;">=</span> <span class="k" style="box-sizing: border-box; color: #007020; font-weight: bold; margin: 0px; padding: 0px;">new</span> <span class="nx" style="box-sizing: border-box; margin: 0px; padding: 0px;">SmtpTransport</span><span class="p" style="box-sizing: border-box; margin: 0px; padding: 0px;">();</span>
<span class="nv" style="box-sizing: border-box; color: #bb60d5; margin: 0px; padding: 0px;">$options</span> <span class="o" style="box-sizing: border-box; color: #666666; margin: 0px; padding: 0px;">=</span> <span class="k" style="box-sizing: border-box; color: #007020; font-weight: bold; margin: 0px; padding: 0px;">new</span> <span class="nx" style="box-sizing: border-box; margin: 0px; padding: 0px;">SmtpOptions</span><span class="p" style="box-sizing: border-box; margin: 0px; padding: 0px;">(</span><span class="k" style="box-sizing: border-box; color: #007020; font-weight: bold; margin: 0px; padding: 0px;">array</span><span class="p" style="box-sizing: border-box; margin: 0px; padding: 0px;">(</span>
<span class="s1" style="box-sizing: border-box; margin: 0px; padding: 0px;">'name'</span> <span class="o" style="box-sizing: border-box; color: #666666; margin: 0px; padding: 0px;">=></span> <span class="s1" style="box-sizing: border-box; margin: 0px; padding: 0px;">'example.com'</span><span class="p" style="box-sizing: border-box; margin: 0px; padding: 0px;">,</span>
<span class="s1" style="box-sizing: border-box; margin: 0px; padding: 0px;">'host'</span> <span class="o" style="box-sizing: border-box; color: #666666; margin: 0px; padding: 0px;">=></span> <span class="s1" style="box-sizing: border-box; margin: 0px; padding: 0px;">'127.0.0.1'</span><span class="p" style="box-sizing: border-box; margin: 0px; padding: 0px;">,</span>
<span class="s1" style="box-sizing: border-box; margin: 0px; padding: 0px;">'port'</span> <span class="o" style="box-sizing: border-box; color: #666666; margin: 0px; padding: 0px;">=></span> <span class="mi" style="box-sizing: border-box; margin: 0px; padding: 0px;">587</span><span class="p" style="box-sizing: border-box; margin: 0px; padding: 0px;">,</span> <span class="c1" style="box-sizing: border-box; color: #408090; font-style: italic; margin: 0px; padding: 0px;">// Notice port change for TLS is 587</span>
<span class="s1" style="box-sizing: border-box; margin: 0px; padding: 0px;">'connection_class'</span> <span class="o" style="box-sizing: border-box; color: #666666; margin: 0px; padding: 0px;">=></span> <span class="s1" style="box-sizing: border-box; margin: 0px; padding: 0px;">'plain'</span><span class="p" style="box-sizing: border-box; margin: 0px; padding: 0px;">,</span>
<span class="s1" style="box-sizing: border-box; margin: 0px; padding: 0px;">'connection_config'</span> <span class="o" style="box-sizing: border-box; color: #666666; margin: 0px; padding: 0px;">=></span> <span class="k" style="box-sizing: border-box; color: #007020; font-weight: bold; margin: 0px; padding: 0px;">array</span><span class="p" style="box-sizing: border-box; margin: 0px; padding: 0px;">(</span>
<span class="s1" style="box-sizing: border-box; margin: 0px; padding: 0px;">'username'</span> <span class="o" style="box-sizing: border-box; color: #666666; margin: 0px; padding: 0px;">=></span> <span class="s1" style="box-sizing: border-box; margin: 0px; padding: 0px;">'user'</span><span class="p" style="box-sizing: border-box; margin: 0px; padding: 0px;">,</span>
<span class="s1" style="box-sizing: border-box; margin: 0px; padding: 0px;">'password'</span> <span class="o" style="box-sizing: border-box; color: #666666; margin: 0px; padding: 0px;">=></span> <span class="s1" style="box-sizing: border-box; margin: 0px; padding: 0px;">'pass'</span><span class="p" style="box-sizing: border-box; margin: 0px; padding: 0px;">,</span>
<span class="s1" style="box-sizing: border-box; margin: 0px; padding: 0px;">'ssl'</span> <span class="o" style="box-sizing: border-box; color: #666666; margin: 0px; padding: 0px;">=></span> <span class="s1" style="box-sizing: border-box; margin: 0px; padding: 0px;">'tls'</span><span class="p" style="box-sizing: border-box; margin: 0px; padding: 0px;">,</span>
<span class="p" style="box-sizing: border-box; margin: 0px; padding: 0px;">),</span>
<span class="p" style="box-sizing: border-box; margin: 0px; padding: 0px;">));</span>
<span class="nv" style="box-sizing: border-box; color: #bb60d5; margin: 0px; padding: 0px;">$transport</span><span class="o" style="box-sizing: border-box; color: #666666; margin: 0px; padding: 0px;">-></span><span class="na" style="box-sizing: border-box; margin: 0px; padding: 0px;">setOptions</span><span class="p" style="box-sizing: border-box; margin: 0px; padding: 0px;">(</span><span class="nv" style="box-sizing: border-box; color: #bb60d5; margin: 0px; padding: 0px;">$options</span><span class="p" style="box-sizing: border-box; margin: 0px; padding: 0px;">);</span></pre>
</div>
</td></tr>
</tbody></table>
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
Porém mesmo assim a mensagem de que o Modo TLS esta desabilitado era retornado.</div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
Percebi então que deveria passar algum parâmetro para desabilitar a verificação de SSL e TLS.</div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
Li vários posts e não encontrei minha solução em dias.</div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
<br /></div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
Porém achei um post que me informava que deveria fazer uma alteração do código fonte da AbstractProtocol da Zend-mail.</div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
Fiz e para minha surpresa resolveu o problema com a alteração do código abaixo:</div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
<br /></div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
<span style="font-size: xx-small;">$contextOptions = array(</span></div>
<br />
<div style="margin-left: 1em; margin-right: 1em;">
<span style="font-size: xx-small;"> 'ssl' => array(</span></div>
<div style="margin-left: 1em; margin-right: 1em;">
<span style="font-size: xx-small;"> 'verify_peer' => false,</span></div>
<div style="margin-left: 1em; margin-right: 1em;">
<span style="font-size: xx-small;"> 'verify_peer_name' => false</span></div>
<div style="margin-left: 1em; margin-right: 1em;">
<span style="font-size: xx-small;"> )</span></div>
<div style="margin-left: 1em; margin-right: 1em;">
<span style="font-size: xx-small;"> );</span></div>
<div style="margin-left: 1em; margin-right: 1em;">
<span style="font-size: xx-small;"><br /></span></div>
<div style="margin-left: 1em; margin-right: 1em;">
<span style="font-size: xx-small;"> $context = stream_context_create($contextOptions);</span></div>
<div style="margin-left: 1em; margin-right: 1em;">
<span style="font-size: xx-small;"><br /></span></div>
<div style="margin-left: 1em; margin-right: 1em;">
<span style="font-size: xx-small;"> // open connection</span></div>
<div style="margin-left: 1em; margin-right: 1em;">
<span style="font-size: xx-small;"> $this->socket = stream_socket_client($remote, $errorNum, $errorStr, self::TIMEOUT_CONNECTION, STREAM_CLIENT_CONNECT, $context); </span></div>
<div style="margin-left: 1em; margin-right: 1em;">
<span style="font-size: xx-small;">// $this->socket = stream_socket_client($remote, $errorNum, $errorStr, self::TIMEOUT_CONNECTION);</span></div>
<div style="margin-left: 1em; margin-right: 1em;">
<span style="font-size: xx-small;"><br /></span></div>
<div style="margin-left: 1em; margin-right: 1em;">
<span style="font-size: xx-small;"><br /></span></div>
<div style="margin-left: 1em; margin-right: 1em;">
Segue abaixo fonte:</div>
<div style="margin-left: 1em; margin-right: 1em;">
<a href="https://forum.espocrm.com/forum/installation-and-upgrade-help/26777-problems-with-smtp-connection-by-tls">https://forum.espocrm.com/forum/installation-and-upgrade-help/26777-problems-with-smtp-connection-by-tls</a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
<br /></div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
Abraços</div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
<br /></div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
<br /></div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
<br /></div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
<br /></div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
<br /></div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
<br /></div>
<div style="margin-left: 1em; margin-right: 1em;">
<br /></div>
<br />
Foxconn Sistemas Inteligenteshttp://www.blogger.com/profile/17038091639381760100noreply@blogger.com0tag:blogger.com,1999:blog-7196747386705881829.post-70273380405909281662019-04-13T05:55:00.002-07:002019-04-13T05:55:41.976-07:00<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5rC82wjrySGXYY3P8pPrGBkH_tDl8RrXQL9oM5a-JegVTtaTCkbb_YUiyIWG2Cz0PYdwqgltamM_RJnoBqDQZ12nbZ7G9izTIFkMgjhPDx3DXUmov-9VtysbCIiguymGVJuaPqCZc2qt0/s1600/images.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="149" data-original-width="339" height="140" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5rC82wjrySGXYY3P8pPrGBkH_tDl8RrXQL9oM5a-JegVTtaTCkbb_YUiyIWG2Cz0PYdwqgltamM_RJnoBqDQZ12nbZ7G9izTIFkMgjhPDx3DXUmov-9VtysbCIiguymGVJuaPqCZc2qt0/s320/images.jpg" width="320" /></a></div>
<br />
<div style="text-align: center;">
<b>Problema com links de compartilhamento no Windows 10 ?</b></div>
<div style="text-align: center;">
<b><br /></b></div>
<div style="text-align: center;">
<b><br /></b></div>
<div style="text-align: left;">
Um de meus clientes reclamou que não conseguia achar pelo programa as pastas compartilhadas do windows. Verificando e descobri que de fato os compartilhamentos não eram apresentados por outros programas, porém no windows explorer era apresentado o compartilhamento.</div>
<div style="text-align: left;">
Então através de pesquisas no Google com muita dificuldade acabei achando a solução do problema.</div>
<div style="text-align: left;">
Permissões do windows.</div>
<div style="text-align: left;">
Então segue abaixo com fazê-lo:</div>
<div style="text-align: left;">
<br /></div>
<ol class="sbody-num_list" style="background-color: white; box-sizing: inherit; font-family: "Segoe UI", SegoeUI, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px; list-style-image: initial; list-style-position: initial; margin: 0px 0px 16px 32px; padding: 0px;">
<li class="" style="box-sizing: inherit; margin-bottom: 8px; margin-top: 8px;">No Editor do registro, localize e clique na seguinte subchave do registro:<br style="box-sizing: inherit;" /><span class="sbody-strong" style="box-sizing: inherit; font-weight: 600;">HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System</span></li>
<li style="box-sizing: inherit; margin-bottom: 8px; margin-top: 8px;">Clique com o botão <span class="uiterm" style="box-sizing: inherit; font-weight: 600;">configuração</span>, clique em <span class="uiterm" style="box-sizing: inherit; font-weight: 600;">novo</span>e, em seguida, clique em <span class="uiterm" style="box-sizing: inherit; font-weight: 600;">valor DWORD (32 bits)</span>.</li>
<li style="box-sizing: inherit; margin-bottom: 8px; margin-top: 8px;">Nome da nova entrada de registo <span class="sbody-userinput" style="box-sizing: inherit; outline: none;">EnableLinkedConnections</span>.</li>
<li style="box-sizing: inherit; margin-bottom: 8px; margin-top: 8px;">Clique duas vezes a entrada de registo <span class="uiterm" style="box-sizing: inherit; font-weight: 600;">EnableLinkedConnections</span> .</li>
<li style="box-sizing: inherit; margin-bottom: 8px; margin-top: 8px;">Na caixa de diálogo <span class="uiterm" style="box-sizing: inherit; font-weight: 600;">Editar valor DWORD </span>, digite <span class="sbody-userinput" style="box-sizing: inherit; outline: none;">1</span> no campo <span class="uiterm" style="box-sizing: inherit; font-weight: 600;">dados do valor </span>e, em seguida, clique em <span class="uiterm" style="box-sizing: inherit; font-weight: 600;">OK</span>.</li>
<li class="" style="box-sizing: inherit; margin-bottom: 8px; margin-top: 8px;">Saia do Editor do registro e reinicie o computador.</li>
</ol>
<div>
<span style="font-family: Segoe UI, SegoeUI, Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 15px;">Abaixo segue o link onde achei a solução acima:</span></span></div>
<div>
<a href="https://support.microsoft.com/pt-br/help/3035277/mapped-drives-are-not-available-from-an-elevated-prompt-when-uac-is-co">https://support.microsoft.com/pt-br/help/3035277/mapped-drives-are-not-available-from-an-elevated-prompt-when-uac-is-co</a></div>
<div>
<br /></div>
<div>
<br /></div>
Foxconn Sistemas Inteligenteshttp://www.blogger.com/profile/17038091639381760100noreply@blogger.com0