Enviar e-mail pelo Rad Studio 2007 - ASP.NET

03/08/2008

0

Prezados Colegas

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.


Responder

Posts

07/08/2008

Maikel

Olá.... o que vc está querendo fazer pode ser utilizado da seguinte maneira:

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


Responder

08/08/2008

M

Prezado colega Maikel

[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.


Responder

08/08/2008

Maikel

Olá

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


Responder

10/08/2008

M

Prezado Maikel Scheid

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


Responder

11/08/2008

Maikel

Olá

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


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar