Enviar e-mail pelo Rad Studio 2007 - ASP.NET
03/08/2008
0
Coloquei o codigo abaixo para enviar e-mail pelo Rad Studio 2007 - ASP.NET.
Uses System.Web.Mail;
procedure TFaleConosco.Button1_Click(sender: System.Object; e:
System.EventArgs);
var
Mensagem: MailMessage;
begin
with Mensagem do
begin
Mensagem := MailMessage.Create;
SmtpMail.SmtpServer := ´smtp.empresaBNET.com.br´;
From := TextBox13.Text.Trim.ToString;
Mensagem.&To := ´faleconosco@empresaBNET.com.br´;
Subject := ´BNET - Fale Conosco´;
Body := TextBox14.Text.Trim.ToString;
SmtpMail.Send(Mensagem);
Mensagem.Free;
end;
end;
OBS: O provedor de e-mail da empresa bnet é o LocaWeb, requer
autenticação e usa a porta 587.
[b:bfe96fb870]A duvida é como fazer este código funcionar?[/b:bfe96fb870]
[b:bfe96fb870]Ocorre que rodo a plicação com o Cassini e entro na página Fale
Conosco preencho o formulário e da o erro abaixo: [/b:bfe96fb870]
Server Error in ´/BNET´ Application.
----------------------------------------------------------
The message could not be sent to the SMTP server. The transport error
code was 0x80040217. The server response was not available
Description: An unhandled exception occurred during the execution of
the current web request. Please review the stack trace for more
information about the error and where it originated in the code.
Exception Details: System.Runtime.InteropServices.COMException: The
message could not be sent to the SMTP server. The transport error
code was 0x80040217. The server response was not available
Source Error:
Line 93: Subject := ´BNET - Fale
Conosco´; //edtAssunto.Text.Trim.ToString;
Line 94: Body := TextBox14.Text.Trim.ToString;
Line 95: SmtpMail.Send(Mensagem);
Line 96: Mensagem.Free;
Line 97: end;
Source File: C:\BNET\FaleConosco.pas Line: 95
Stack Trace:
[COMException (0x80040211): The message could not be sent to the SMTP
server. The transport error code was 0x80040217. The server response
was not available
]
[TargetInvocationException: Exception has been thrown by the target
of an invocation.]
System.RuntimeType.InvokeDispMethod(String name, BindingFlags
invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers,
Int32 culture, String[] namedParameters) +0
System.RuntimeType.InvokeMember(String name, BindingFlags
bindingFlags, Binder binder, Object target, Object[] providedArgs,
ParameterModifier[] modifiers, CultureInfo culture, String[]
namedParams) +436
System.Type.InvokeMember(String name, BindingFlags invokeAttr, Binder
binder, Object target, Object[] args, CultureInfo culture) +31
System.Web.Mail.LateBoundAccessHelper.CallMethod(Type type, Object
obj, String methodName, Object[] args) +93
System.Web.Mail.LateBoundAccessHelper.CallMethod(Object obj, String
methodName, Object[] args) +69
[HttpException (0x80004005): The message could not be sent to the
SMTP server. The transport error code was 0x80040217. The server
response was not available
]
System.Web.Mail.LateBoundAccessHelper.CallMethod(Object obj, String
methodName, Object[] args) +136
System.Web.Mail.CdoSysHelper.Send(MailMessage message) +2577
System.Web.Mail.SmtpMail.Send(MailMessage message) +204
FaleConosco.TFaleConosco.Button1_Click(Object sender, EventArgs e) in
C:\BNET\FaleConosco.pas:95
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +96
System.Web.UI.WebControls.Button.RaisePostBackEvent(String
eventArgument) +116
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.R
aisePostBackEvent(String eventArgument) +31
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler
sourceControl, String eventArgument) +32
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
+72
System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
+3824
----------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.1434;
ASP.NET Version:2.0.50727.1434
[b:bfe96fb870]Será que alguem sabe como posso resolver o problema?[/b:bfe96fb870]
Desde já agradeço a atenção dos colegas, obrigado.
M
Posts
07/08/2008
Maikel
Adicione no seu web.config dentro da tag <system.web> a seguinte declaração:
<system.net> <mailSettings> <smtp> <network host="200.154.55.5" port="25" userName="usuario" password="senha" /> </smtp> </mailSettings> </system.net>
Depois na página, ao enviar e-mail utiliza o seguinte código:
Var TOemail: string ; x:integer; email : System.Net.Mail.MailMessage; auten : System.Net.Mail.SmtpClient; from : System.Net.Mail.MailAddress; begin TOemail := ´para@servidor.com.br´;//Vários endereços use ";" p/ separar email := MailMessage.Create; auten := SmtpClient.Create; from := MailAddress.Create(´remetente@servidor.com.br´); while pos(´;´,TOemail) > 0 do begin email.&To.Add((Copy(TOemail,1,pos(´;´,TOemail)-1))); x := pos(´;´,TOemail); Delete(TOemail,1,x); end; email.Priority := MailPriority.High; email.IsBodyHtml := True; email.From := from; email.Subject := ´Assunto do E-mail´; email.Body := ´Mensagem enviada no corpo do e-mail´; auten.Send(email);
Esse trecho ai fará com que as informaçoes lá no web.config sejam utilizadas para o envio de e-mail, bastando realizar sua configuração de acordo com a conta de e-mail.
Att
Maikel
08/08/2008
M
[b:75fbf02453]O que realmente preciso é fazer uma página Fale Conosco.[/b:75fbf02453]
Nome - TextBox1.text
from - TextBox2.text (E-mail da pessoa que envia o e-mail)
Assunto - TextBox3.text
Mensagem - TextBox4.text
O e-mail deve ser enviado para: faleconosco@empresa.com.br
Obs: O provedor de hospedagem do site da empresa é o locaweb.
[b:75fbf02453]Como devo fazer para enviar e-mail, da página Fale Conosco, acima descrita, para o email: faleconosco@empresa.com.br?[/b:75fbf02453]
Desde já agradeço a atenção, obrigado.
08/08/2008
Maikel
Para enviar o e-mail utilizando esta conta, deverá alterar as informações que sao passadas ao objeto email criado e também as configurações realizadas no Web.config, onde:
No web.config:
Username: coloque um usuário de e-mail ativo Password: senha para acesso deste usuário host: endereço IP do servidor smtp da locaweb (ping smtp.suaempresa.com.br)
Ai a próxima alteração é direto no código .pas, onde deverá alterar quem será o remetente, da seguinte forma:
from := MailAddress.Create(´remetente@servidor.com.br´);
Depois mais, para adicionar os campos ao corpo da mensagem, utilizem códigos HTML, ou seja, assim:
email.Body := ´Nome: ´+EditNome.Text+´
´+
´Endereço: ´+EdtEndereco.Text;
Tenta ae.... qualquer coisa post de novo
Att
10/08/2008
M
Não estou conseguindo colocar no web.config o comando:
<system.net>
<mailSettings>
<smtp>
<network host=´ip smtp Locaweb´ userName=´faleconosco@empresa´ password=´senha xxx´ />
</smtp>
</mailSettings>
</system.net>
Quando compilo e rodo não nostra a página no browser via Cassini, mas quando retiro do Web.Config o código acima a página no Browser via Cassini carrega normalmente.
O que será que estou errando?
Outra duvida como descubro o ip do servidor SMPT da empresa na locaweb para enviar e-mail para faleconosco@empresa.com.br
Desde já agradeço a atenção, obrigado
11/08/2008
Maikel
Certamente o código não está organizado de forma correta dentro da estrutura do web.config. Veja abaixo esquema de estrutura que deverá estar montado:
<configuration> [...] <system.web> [...] </system.web> <appsetings> [...] </appsetings> <system.net> <mailsettings> <smtp> <network host="IP Provedor" port="25" userName="usuario" password="senha" /> </smtp> </mailsettings> </system.net> </configuration>
Tente deixar o seu web.config assim organizado e compile sua aplicação novamente que deverá funcionar.
Att
Clique aqui para fazer login e interagir na Comunidade :)