Fórum Esqueci a senha UserControl - enviar email #423662
14/09/2012
0
Já tentei configurar com email da hotmail, yahoo, do servidor do meu site e sempre dá este erro. Não tenho certeza se é alguma configuração errada q fiz no UCMail ou sei lá o quê. Se alguem tiver alguma idéia da resolução, desde já agradeço.
Rodrigo Barra
Curtir tópico
+ 0Posts
17/09/2012
Rodrigo Barra
function ALgetLocalHostName: String;
var
{$IFDEF DELPHI12_UP}
Buffer: PAnsiChar;
{$ELSE}
Buffer: array [0 .. 255] of char;
{$ENDIF}
WSAData: TWSAData;
begin
WSAData.wVersion := 0;
WSAStartup(MAKEWORD(2, 2), WSAData);
try
Buffer := '';
if gethostname(Buffer, SizeOf(Buffer)) <> 0 then
raise Exception.Create('Winsock GetHostName failed');
Result := StrPas(Buffer);
finally
if WSAData.wVersion = 2 then
WSACleanup;
end;E está caindo nesta mensagem: raise Exception.Create('Winsock GetHostName failed');
Alguém que conhece sobre sockets, envio de email em delphi tem alguma luz de como posso resolver o problema.
Obrigado.
Gostei + 0
17/09/2012
Alisson Santos
Pois como disse pode ser configuração, pode ser bloqueio do proprio sistema operacional, pode ser bloqueio do proprio servidor de e-mail não aceitando spam.
Entendeu, tem que verificar se está trazendo tudo correto e ver qual é a linha errada, caso realmente esteja errada.
Gostei + 0
17/09/2012
Rodrigo Barra
procedure TUserControl.ActionEsqueceuSenha(Sender: TObject);
var
FDataset, FDataPer: TDataSet;
begin
FDataset := DataConnector.UCGetSQLDataset('Select * from ' +
TableUsers.TableName + ' Where ' + TableUsers.FieldLogin + ' = ' +
QuotedStr(TfrmLoginWindow(FFormLogin).EditUsuario.Text));
FDataPer := DataConnector.UCGetSQLDataset('select ' + TableUsers.FieldUserName +
' from ' + TableUsers.TableName + ' Where ' + TableUsers.FieldUserID +
' = ' + FDataset.FieldByName(TableUsers.FieldProfile).AsString);
try
if not FDataset.IsEmpty then
//if FDataset.RecordCount > 0 then
begin
{$IFNDEF FPC}
MailUserControl.EnviaEsqueceuSenha
(FDataset.FieldByName(TableUsers.FieldUserID).AsInteger,
FDataset.FieldByName(TableUsers.FieldUserName).AsString,
FDataset.FieldByName(TableUsers.FieldLogin).AsString,
FDataset.FieldByName(TableUsers.FieldPassword).AsString,
FDataset.FieldByName(TableUsers.FieldEmail).AsString,
FDataPer.FieldByName(TableUsers.FieldUserName).AsString)
{$ENDIF}
end
else
MessageDlg(UserSettings.CommonMessages.InvalidLogin, mtWarning,
[mbOK], 0);
finally
FDataset.Close;
FDataset.Free;
end;
end;Gostei + 0
17/09/2012
Rodrigo Barra
Exception Class TDBXError: Unnexpected end for comando line 1, column 50 no segundo select.
FDataPer := DataConnector.UCGetSQLDataset('select ' + TableUsers.FieldUserName +
' from ' + TableUsers.TableName + ' Where ' + TableUsers.FieldUserID +
' = ' + FDataset.FieldByName(TableUsers.FieldProfile).AsString);Gostei + 0
17/09/2012
Alisson Santos
Gostei + 0
17/09/2012
Rodrigo Barra
Esta função está na classe SMTPClient. E o erro "Winsock gethostname failed."
Fiz umas alterações que diz neste artigo, https://www.devmedia.com.br/usercontrol/485 , mas que não fizeram diferença.
Gostei + 0
31/05/2015
Mário Reis
Esta função funciona:
Function GetIPAddress: String;
type pu_long = ^u_long;
var varTWSAData : TWSAData;
varPHostEnt : PHostEnt;
varTInAddr : TInAddr;
namebuf : Array[0..255] of ansichar;
begin
try
try
If WSAStartup($101,varTWSAData) <> 0 Then
Result := ''
Else Begin
gethostname(namebuf,sizeof(namebuf));
varPHostEnt := gethostbyname(namebuf);
varTInAddr.S_addr := u_long(pu_long(varPHostEnt^.h_addr_list^)^);
Result := inet_ntoa(varTInAddr);
End;
except
Result := '';
end;
finally
WSACleanup;
end;
end;
Me dê fio de bak.
Abr
Gostei + 0
23/08/2015
Erick
Gostei + 0
23/08/2015
Mário Reis
Gostei + 0
05/09/2015
Erick
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)