...
uses ssl_openssl;
...
function TdmDocs.SendMyEmail_TLS(const MailFrom, MailTo, SMTPHost, SMTPPort:
string;
const MailData: TStrings; const Username, Password: string): Boolean;
var
SMTP: TSMTPSend;
s, t: string;
msg_lines: TStringList;
tmpStream: TStream;
begin
Result := False;
SMTP := TSMTPSend.Create;
try
MailData.Insert(0, 'From: ' + MailFrom);
MailData.Insert(1, 'To: ' + MailTo);
SMTP.TargetHost := SMTPHost;
SMTP.TargetPort := SMTPPort;
SMTP.Username := Username;
SMTP.Password := Password;
//SMTP.FullSSL:= true;
SMTP.AutoTLS:= true;
if SMTP.Login then
begin
try
if not smtp.Login() then
raise ESMTP.Create('SMTP ERROR: Login:' + smtp.EnhCodeString);
//if not smtp.StartTLS() then
// raise ESMTP.Create('SMTP ERROR: StartTLS:' + smtp.EnhCodeString);
if not smtp.MailFrom(MailFrom, Length(MailFrom)) then
raise ESMTP.Create('SMTP ERROR: MailFrom:' +
smtp.EnhCodeString+#13#10+IntTostr(smtp.Sock.lasterror)+#13#10+IntToStr(smtp.sock.ssl.lasterror)+#13#10+smtp.sock.ssl.LastErrorDesc);
if not smtp.MailTo(MailTo) then
raise ESMTP.Create('SMTP ERROR: MailTo:' + smtp.EnhCodeString);
if not smtp.MailData(MailData) then
raise ESMTP.Create('SMTP ERROR: MailData:' + smtp.EnhCodeString);
if not smtp.Logout() then
raise ESMTP.Create('SMTP ERROR: Logout:' + smtp.EnhCodeString);
except on E: Exception do
begin
if defShowEmailErrors and (DispatchPr <> 1) then
MessageDlg('Ioeaea i?e ioi?aaeaiee
email.'+Chr(13)+Chr(10)+E.Message+#13#10+smtp.EnhCodeString, mtError, [mbOK],
0);
end;
end;
end
else
if defShowEmailErrors and (DispatchPr <> 1) then
MessageDlg('Ioeaea: iao niaaeiaiey n SMTP-na?aa?ii.', mtError, [mbOK],
0);
finally
SMTP.Free;
end;
end;
-----------------------------------------
As you see our code match with that you wrote us.
And dll present in the catalogue with project an in the system one.
Unfortunatelly login doesn't happen
in the function TSMTPSend.Login we get to condition
if (not FullSSL) and FAutoTLS and (FindCap('STARTTLS') <> '') then
if StartTLS then
begin
Ehlo;
FESMTPcap.Clear;
for n := 1 to FFullResult.Count - 1 do
FESMTPcap.Add(Copy(FFullResult[n], 5, Length(FFullResult[n]) - 4));
end
else
begin
Result := False;
Exit;
end;
but StartTLS return FALSE and TSMTPSend.Login return FALSE;
Thursday, November 27, 2008, 4:41:01 PM, you wrote:
>> We have problem that I describe below. How much we should donate to
>> receive fully functional code for sending email via gmail server?
>> Problem:
>> I try to send letter using gmail as SMTP-server
>> if i use port 587 then login successful, but when i try to execute
>> StartTLS i receive error:Su Success - Other undefined status--
LG> I write some reply to the synalist before a moment. Sorry for delay,
LG> I am just little busy now.
--
Best regards,
Smart mailto:[EMAIL PROTECTED]
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
synalist-public mailing list
synalist-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/synalist-public