Array
(
)

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

M
   - 03 ago 2008

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.

A duvida é como fazer este código funcionar?

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:

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

Será que alguem sabe como posso resolver o problema?

Desde já agradeço a atenção dos colegas, obrigado.


Maikel
   - 07 ago 2008

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:
#Código

<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:
#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


M
   - 08 ago 2008

Prezado colega Maikel

O que realmente preciso é fazer uma página Fale Conosco.

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.

Como devo fazer para enviar e-mail, da página Fale Conosco, acima descrita, para o email: faleconosco@empresa.com.br?

Desde já agradeço a atenção, obrigado.


Maikel
   - 08 ago 2008

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:
#Código

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


M
   - 10 ago 2008

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


Maikel
   - 11 ago 2008

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:
#Código

<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