Se você precisa criar um formulário que envie de forma autenticada no servidor SMTP, implemente na sua aplicação os códigos abaixo.
Para poder funcionar o PHP Mailer, é necessário subir junto com o exemplo de código abaixo, e com os seguintes arquivos:
<!DOCTYPE html>
<html lang="pt-br">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Enviar e-mail com anexo</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="?acao=enviar" enctype="multipart/form-data">
<table width="500" border="0" align="center" cellpadding="0" cellspacing="2">
<tr>
<td align="right">Nome:</td>
<td><input type="text" name="nome" id="nome" /></td>
</tr>
<tr>
<td align="right">Assunto:</td>
<td><input type="text" name="assunto" id="assunto" /></td>
</tr>
<tr>
<td align="right">Mensagem:</td>
<td><textarea name="mensagem" id="mensagem" cols="45" rows="5"></textarea></td>
</tr>
<tr>
<td align="right">Anexo:</td>
<td><input type="file" id="arquivo" name="arquivo" /></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Enviar" /></td>
</tr>
</table>
</form>
<?php
require 'PHPMailerAutoload.php';
require 'class.phpmailer.php';
$mailer = new PHPMailer;
//$mailer->SMTPDebug = 2; // Enable verbose debug output
$mailer->isSMTP(); // Set mailer to use SMTP
$mailer->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
if($_GET['acao'] == 'enviar'){
$nome = $_POST['nome'];
$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];
$arquivo = $_FILES["arquivo"];
$mailer->Host = 'mail.seuDominio.com.br';
$mailer->SMTPAuth = true; // Enable SMTP authentication
$mailer->IsSMTP();
$mailer->isHTML(true); // Set email format to HTML
$mailer->Port = 587;
// Ativar condição utf-8, para acentuação
$mailer->CharSet = 'UTF-8';
$mailer->Username = 'conta@SeuDomínio.com.br'; // SMTP username
$mailer->Password = 'SuaSenha'; // SMTP password
// email do destinatario
$address = "conta@SeuDomínio.com.br";
//$mailer->SMTPDebug = 1;
$corpoMSG = "<strong>Nome:</strong> $nome<br> <strong>Mensagem:</strong> $mensagem";
$mailer->AddAddress($address, "destinatario");
$mailer->AddAddress("conta@gmail.com", "destinatario 2"); // 2º destinatário se querer enviar, se não, comente com //
$mailer->From = 'conta@SeuDomínio.com.br';
$mailer->Sender = 'conta@SeuDomínio.com.br';
$mailer->FromName = "Teste LW"; // Seu nome
// assunto da mensagem
$mailer->Subject = $assunto;
// corpo da mensagem
$mailer->MsgHTML($corpoMSG);
// anexar arquivo
$mailer->AddAttachment($arquivo['tmp_name'], $arquivo['name'] );
if(!$mailer->Send()) {
echo "Erro: " . $mailer->ErrorInfo;
} else {
echo "Mensagem enviada com sucesso!";
}
}
?>
</body>
</html>
:
Já para ASP, o código a ser usado é o descrito abaixo:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
<title>Formulário</title>
<link href="styles/style_formulario.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
<!--
function Incluir(varForm){
if (varForm.Campo1.value == ""){
window.alert ('O campo "Nome" é de preenchimento obrigatório');
varForm.Campo1.focus();
return false;
}
if (varForm.Campo3.value == ""){
window.alert ('O campo "E-mail" é de preenchimento obrigatório');
varForm.Campo3.focus();
return false;
}
else{
if (varForm.Campo3.value.search("@") == -1 || varForm.Campo3.value.search("[.*]") == -1){
window.alert ("O e-mail não é válido");
varForm.Campo3.focus();
return false;
}
}
varForm.submit();
}
-->
</script>
</head>
<body>
<%
Response.Charset = "ISO-8859-1"
Assunto = "Fale Conosco - Envio com Autenticação!"
If Not IsEmpty(Request.Form) Then
Mensagem = "<B>Nome:</B><BR><BR>" & Trim(Request.Form("Campo1")) & "<HR size=1 color=gainsboro>"
Mensagem = Mensagem & "<B>Email:</B><BR><BR>" & Trim(Request.Form("Campo3")) & "<HR size=1 color=gainsboro>"
Mensagem = Mensagem & "<B>Telefone:</B><BR><BR>" & Trim(Request.Form("Campo4")) & "<HR size=1 color=gainsboro>"
Mensagem = Mensagem & "<B>Assunto:</B><BR><BR>" & Trim(Request.Form("Campo8")) & "<HR size=1 color=gainsboro>"
Mensagem = Mensagem & "<br><br><br><b>IP: </b>" &request("REMOTE_ADDR")
Set objMail = Server.CreateObject("CDO.Message")
Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration")
objCDOSYSCon.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'Send the message using the network (SMTP over the network).'
objCDOSYSCon.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") ="smtp.dominio.com"
objCDOSYSCon.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587
objCDOSYSCon.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False 'Use SSL for the connection (True or False)'
objCDOSYSCon.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
objCDOSYSCon.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 'basic (clear-text) authentication'
objCDOSYSCon.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") ="email@dominio.com"
objCDOSYSCon.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") ="senha"
objCDOSYSCon.Fields.update
Set objMail.Configuration = objCDOSYSCon
'Para definir o charset da mensagem'
objMail.BodyPart.Charset = "ISO-8859-1"
objMail.From = "email@dominio.com"
objMail.To = Trim(Request.Form("Campo3"))
objMail.ReplyTo = "email@dominio.com"
objMail.Subject = Assunto
objMail.HTMLBody = Mensagem
objMail.HTMLBodyPart.Charset = "ISO-8859-1"
objMail.Send
Set objMail = Nothing
Set objCDOSYSCon = Nothing
%>
<p class="center"><b>Dados enviados</b><br />
Obrigado, seus dados foram enviados com sucesso. </p>
<%
Else
%>
<p class="center"><b>Enviar Dados</b><br />
Informe os dados abaixo:</p>
<form action='<%=Request.ServerVariables("SCRIPT_NAME")%>' method="post" name="formIncluir" accept-charset="ISO-8859-1">
<table width="250px" height="250px">
<tr><td>
<fieldset>
<legend>Fale Conosco!</legend>
<label>Nome: <input class="input_form" name="Campo1" type="text" /></label><br/>
<label>Email: <input class="input_form" name="Campo3" type="text" /></label><br/>
<label>Telefone: <input class="input_form" name="Campo4" type="text" /></label><br/>
<label>Assunto: <textarea class="input_formtextarea" name="Campo8"></textarea></label>
<label>
<input id="botao_enviar" name="enviar" onclick="JavaScript:Incluir(formIncluir);" type="button" value="Enviar" /></label>
</fieldset>
</td></tr>
</table>
</form>
<%
End If
%>
</body>
</html>
:
E para ASP Email, siga com os passos abaixo:
O componente Persits.MailSender ( AspEmail ) é um componente utilizado para o envio de mensagens de e-mail utilizando a linguagem de programação ASP.
Se você precisa criar um formulário que envie de forma autenticada no servidor SMTP, implemente na sua aplicação dos códigos abaixo.
Copie o código abaixo e salve com o nome de formulario.asp este é o arquivo do seu formulário.
Código:
<html> <head> <title>Formulário - Persits MailSender</title> </head> <body> <p align="center"><font face="Arial">Exemplo de formulário Persits MailSender<br> </font> </p> <form method="POST" action="enviar.asp" name="form" target="_self"> <div align="center"> <table border="0" width="43%"> <tr> <td width="23%"><font face="Arial">Nome:</font></td> <td width="74%"><font face="Arial"><input type="text" name="fromnome" size="20"></font></td> </tr> <tr> <td width="23%"><font face="Arial">E-Mail:</font></td> <td width="74%"><font face="Arial"><input type="text" name="fromemail" size="20"></font></td> </tr> <tr> <td width="23%"><font face="Arial">Assunto:</font></td> <td width="74%"><font face="Arial"><input type="text" name="assunto" size="20"></font></td> </tr> <tr> <td width="23%" valign="top"><font face="Arial">Mensagem:</font></td> <td width="74%"><font face="Arial"><textarea rows="5" name="mensagem" cols="30"></textarea></font></td> </tr> <tr> <td width="23%"></td> <td width="74%"><font face="Arial"><input type="submit" value="enviar" name="botao"></font></td> </tr> </table> <p><font face="Arial" size="1"> <a target="_self" href="http://www.seudominio.com"> <span style="text-decoration: none"> <font color="#000000">www.seudominio.com</font> </span></a></font> </div> </form> </body> </html> |
- Copie o código abaixo e salve com o nome de enviar.asp;
- O arquivo que vai pegar todas as informações do seu formulário e enviar para o e-mail descrito na linha Mail.AddAddress.
Código:
<%
DIM Mail
Set Mail = Server.CreateObject("Persits.MailSender")
Mail.IsHTML = True
Mail.Host = "smtp.seudominio.com.br"
Mail.Username = "seuemail@seudominio.com.br"
Mail.Password = "senhadoseuemail"
Mail.AddReplyTo Request.Form("fromemail") , Request.Form("fromnome")
Mail.From = Request.Form("fromemail")
Mail.FromName = Request.Form("fromnome")
Mail.AddAddress "seuemail@seudominio.com.br"
Mail.Subject = Request.Form("assunto")
Mail.Body = Request.Form("mensagem")
On Error Resume Next
Mail.Send
If Err <> 0 Then
Response.Write "<h3>Ocorreu um erro: " & Err.Description & "</h3>"
End If
If Err = 0 Then
Response.Write("<h3>Obrigado Sr(a) " & Request.Form("fromnome") & ", seu e-mail foi enviado com sucesso!</h3>")
End If
Set Mail = Nothing
%>