Indy: Sending E-mails using SSL

I am a newbie to Indy and want to send e-mail notifications from my app.

Below is my first shot code. It works with GMail but I want it to works with a resonable subset of existing SMTP-servers.

Will I have a chance?

I am probably committing several beginners errors, so correct me, please.

I am using Delphi XE2, Indy 10.5.8.0 (shipped with Delphi XE2) and openssl-1.0.0d-i386-win32.


{code}
unit UEmail;

interface

uses
  UStrings {My unit: GetLocalComputerName}, Classes, IdBaseComponent,
  IdComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase,
  IdMessageClient, IdSMTPBase, IdSMTP, IdMessage, IdSSLOpenSSL, IdGlobal;

type
  TEmailData = class
    edSMTPServer: string; //GMail: smtp.gmail.com
    edSMTPPort: integer; //GMail: 465 or 587
    edSSLConnection: boolean; //GMail: True
    edSenderEmail: string; //GMail: you@gmail.com
    edSMTPUserName: string; //GMail: you@gmail.com
    edSMTPPassword: string; //GMail: GMail Password
    edToEmail: string;
    edCCEmail: string;
    edSubject: string;
    edSenderApp: string;
    edPriority: TIdMessagePriority;
    edBody: TStringList;
    constructor Create;
    destructor Destroy; override;
  end;

procedure SendEmail(ED: TEmailData);

implementation

constructor TEMailData.Create;
begin
  inherited;
  edBody := TStringList.Create;
end;

destructor TEMailData.Destroy;
begin
  edBody.Free;
  inherited;
end;

procedure SendEmail(ED: TEmailData);
var
  IdMessage: TIdMessage;
  SMTP: TIdSMTP;
  SSLHandler: TIdSSLIOHandlerSocketOpenSSL;

begin
  IdMessage := TIdMessage.Create(nil);
  try
    SMTP := TIdSMTP.Create(nil);
      try
        SSLHandler := nil;
        if ED.edSSLConnection then SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
        try

          with IdMessage, ED do
          begin
            ContentType := 'text/plain';
            Charset := 'UTF-8';
            Body.Assign(edBody);
            Sender.Text := edSenderEMail;
            From.Text := '"' + edSenderApp + ' ('
             + GetLocalComputerName + ')" <' + edSenderEMail + '>';
            ReplyTo.EMailAddresses := edSenderEmail;
            Recipients.EMailAddresses := edToEmail;
            Subject := edSubject;
            Priority := edPriority;
            CCList.EMailAddresses := edCCEMail;
            ReceiptRecipient.Text := '';
            BccList.EMailAddresses := '';
          end;

          With ED, SMTP do
          begin
            Username := edSMTPUserName;
            Password := edSMTPPassword;
            Host := edSMTPServer;
            Port := edSMTPPort;
            case edSSLConnection of
              False: AuthType := satNone;
              True: AuthType := satDefault;
            end;
            if edSSLConnection then
            begin
              SSLHandler.MaxLineAction := maException;
              SSLHandler.SSLOptions.Method := sslvTLSv1;
              SSLHandler.SSLOptions.Mode := sslmUnassigned;
              SSLHandler.SSLOptions.VerifyMode := [];
              SSLHandler.SSLOptions.VerifyDepth := 0;
              IOHandler := SSLHandler;
              UseTLS := utUseImplicitTLS;
              if Port = 587 then UseTLS := utUseExplicitTLS;
              IOHandler.ConnectTimeout := 30000;
            end;
            Connect;
            try
              Send(IdMessage);
            finally
              Disconnect;
            end;
          end; //With

      finally
        SSLHandler.Free;
      end;
    finally
      SMTP.Free;
    end;
  finally
    IDMessage.Free;
  end;
end;

end.
{code}
0
Steen
1/20/2013 1:32:15 PM
embarcadero.delphi.winsock 1874 articles. 2 followers. Follow

6 Replies
2103 Views

Similar Articles

[PageSpeed] 21

Steen wrote:

> Below is my first shot code. It works with GMail but I want it to
> works with a resonable subset of existing SMTP-servers.
> 
> Will I have a chance?

Different SMTP servers use different SSL/TLS settings, support different 
authentication methods, etc.  So you are going to have to make your code 
a bit more flexible than it currently is.

> if ED.edSSLConnection then SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);

It is not enough to just create the SSL IOHandler.  You usually have to configure 
it as well, if only just to set the SSLOptions.Method (or SSLOptions.SSLVersions) 
property if nothing else.  They default to TLSv1, but not all servers use 
TLSv1 yet, so you might have to use SSLv3 or even SSLv23 instead at times 
(nobody uses SSLv2 anymore, so ignore that one):

{code:delphi}
SSLHandler.SSLOptions.Method := sslvSSLv3; // sets SSLOptions.SSLVersions 
to sslvSSLv3 for you...
{code}

Or:

{code:delphi}
SSLHandler.SSLOptions.Method := sslvSSLv23; // sets SSLOptions.SSLVersions 
to all available versions for you...
{code}

Or:

{code:delphi}
SSLHandler.SSLOptions.SSLVersions := [sslvSSLv3, sslvTLSv1]; // set SSLOptions.Method 
to sslvSSLv23 for you...
{code}

sslvSSLv23 is a wildcard that allows the two peers to dyamically negotiate 
a common SSL/TLS version during the encryption handshaking.

> From.Text := '"' + edSenderApp + ' ('
> + GetLocalComputerName + ')" <' + edSenderEMail + '>';

You should use the From.Name and From.Address properties instead:

{code:delphi}
From.Name := edSenderApp + ' (' + GetLocalComputerName + ')';
From.Address := edSenderEMail;
{code}

> Username := edSMTPUserName;
> Password := edSMTPPassword;
> case edSSLConnection of
> False: AuthType := satNone;
> True: AuthType := satDefault;
> end;

The TIdSMTP.Username and TIdSMTP.Password properties are only used when The 
TIdSMTP.AuthType property is set to satDefault (which it is by default). 
 That option uses the AUTH LOGIN command to authenticate with the server. 
 That is an unsecure method (it sends the credentials in plain text), so 
many servers do not support it anymore, or at least only support it if the 
connection has been SSL/TLS encrypted first.  Most servers nowadays require 
actual hashing/encryption instead, such as CRAM-MD5, CRAM-SHA1, NTLM, etc. 
 To use those with TIdSMTP, set the TIdSMTP.AuthType property to satSASL 
instead, fill in the TIdSMTP.SASLMechanisms collection to point at TIdSASL-derived 
components (TIdSASLCRAMMD5, TIdSASLCRAMSHA1, TIdSASLNTLM, etc) for all of 
the algorithms you want to support on your end (the AUTH LOGIN command is 
handled by the TIdSASLLogin component), and then attach a single TIdUserPassProvider 
component to each of them to store the username/password into.  TIdSMTP.Send() 
will then determine which SASL algorithm(s) are shared in common between 
TIdSMTP and the server (you must have the TIdSMTP.UseEHLO property set to 
True for that to work) and attempt to authenticate with them one at a time 
until one of them succeeds or they all fail.

> UseTLS := utUseImplicitTLS;
> if Port = 587 then UseTLS := utUseExplicitTLS;

Setting the TIdSMTP.UseTLS property can update the TIdSMTP.Port property, 
so it would be better to test your UseTLS condition against the original 
edSMTPPort instead of the TIdSMTP.Port property, and then assign TIdSMTP.Port 
afterwards to the true value needed:

{code:delpi}
if edSMTPPort = 587 then
  UseTLS := utUseExplicitTLS
else
  UseTLS := utUseImplicitTLS;
....
SMTP.Port := edSMTPPort;
{code}

Or:

{code:delpi}
UseTLS := TIdUseTLS(iif(edSMTPPort = 587, utUseExplicitTLS, utUseImplicitTLS));
....
SMTP.Port := edSMTPPort;
{code}

Also, not every SMTP server uses port 587 for utExplicitTLS or port 465 for 
utImplicitTLS, so you should consider making the UseTLS option more user-configurable 
so the Port is more customizable.

--
Remy Lebeau (TeamB)
0
Remy
1/21/2013 7:08:03 PM
Hej Remy,

Thank you so much for your help.
Below is my second attempt. Works with gmail.

1) should I have a combobox where the user can set SSLHandler.SSLOptions.Method (sslvSSLv23, sslvTLSv1, sslvSSLv3) ?
2) Is the order of the SASLMechanisms OK ?

3) Please point out if error(s) in the code.

TIA
Steen




{code}
unit UEmail;

interface

uses
  UStrings {My unit: GetLocalComputerName}, Classes, Vcl.StdCtrls, IdBaseComponent,
  IdComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase,
  IdMessageClient, IdSMTPBase, IdSMTP, IdMessage, IdSSLOpenSSL, IdGlobal,
  IdSASL_CRAM_MD5,
  IdSASLLogin, IdSASL_CRAM_SHA1, IdUserPassProvider,
  IdSASLUserPass, IdSASLPlain, IdSASLSKey,
  IdSASLOTP, IdSASLExternal, IdSASLDigest, IdSASLAnonymous;

type
  TEmailData = class
    edSMTPServer: string; //GMail: smtp.gmail.com
    edSMTPPort: integer; //GMail: 465 or 587
    edUseTLS: integer;
    edSSLConnection: boolean; //GMail: True
    edSenderEmail: string; //GMail: you@gmail.com
    edSMTPUserName: string; //GMail: you@gmail.com
    edSMTPPassword: string; //GMail: GMail Password
    edToEmail: string;
    edCCEmail: string;
    edSubject: string;
    edSenderApp: string;
    edPriority: TIdMessagePriority;
    edBody: TStringList;
    constructor Create;
    destructor Destroy; override;
  end;

procedure SendEmail(ED: TEmailData);

implementation

constructor TEMailData.Create;
begin
  inherited;
  edBody := TStringList.Create;
end;

destructor TEMailData.Destroy;
begin
  edBody.Free;
  inherited;
end;

procedure SendEmail(ED: TEmailData);
var
  IdMessage: TIdMessage;
  SMTP: TIdSMTP;
  SSLHandler: TIdSSLIOHandlerSocketOpenSSL;
  IdUserPassProvider: TIdUserPassProvider;
  IdSASLCRAMMD5: TIdSASLCRAMMD5;
  IdSASLCRAMSHA1: TIdSASLCRAMSHA1;
  IdSASLPlain: TIdSASLPlain;
  IdSASLLogin: TIdSASLLogin;
  IdSASLSKey: TIdSASLSKey;
  IdSASLOTP: TIdSASLOTP;
  IdSASLAnonymous: TIdSASLAnonymous;
  IdSASLExternal: TIdSASLExternal;
begin
  IdMessage := TIdMessage.Create(nil);
  try
    SMTP := TIdSMTP.Create(nil);
      try
        SSLHandler := nil;
        if ED.edSSLConnection then SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
        try
          IdUserPassProvider := nil;
          if ED.edSSLConnection then IdUserPassProvider := TIdUserPassProvider.Create(nil);
          try
            with IdMessage, ED do
            begin
              ContentType := 'text/plain';
              Charset := 'UTF-8';
              Body.Assign(edBody);
              Sender.Text := edSenderEMail;
              From.Name := edSenderApp + ' (' + GetLocalComputerName + ')';
              From.Address := edSenderEMail;
              ReplyTo.EMailAddresses := edSenderEmail;
              Recipients.EMailAddresses := edToEmail;
              Subject := edSubject;
              Priority := edPriority;
              CCList.EMailAddresses := edCCEMail;
              ReceiptRecipient.Text := '';
              BccList.EMailAddresses := '';
            end;

            With ED, SMTP do
            begin
              Username := edSMTPUserName;
              Password := edSMTPPassword;
              Host := edSMTPServer;
              Port := edSMTPPort;
              AuthType := satNone;
              if edSSLConnection then
              begin
                IdUserPassProvider.Username := edSMTPUserName;
                IdUserPassProvider.Password:= edSMTPPassword;
                AuthType := satSASL;
                SSLHandler.MaxLineAction := maException;
                SSLHandler.SSLOptions.Method := sslvSSLv23;//will that do?
                SSLHandler.SSLOptions.Mode := sslmUnassigned;
                SSLHandler.SSLOptions.VerifyMode := [];
                SSLHandler.SSLOptions.VerifyDepth := 0;
                IOHandler := SSLHandler;
                {from a user combobox:}
                UseTLS := TIdUseTlS(edUseTLS); //0,1,2,3 Could change Port
                Port := edSMTPPort;
                IOHandler.ConnectTimeout := 30000;
                UseEHLO := True;

                IdSASLCRAMMD5 := TIdSASLCRAMMD5.Create(SMTP);
                IdSASLCRAMMD5.UserPassProvider := IdUserPassProvider;
                IdSASLCRAMSHA1 := TIdSASLCRAMSHA1.Create(SMTP);
                IdSASLCRAMSHA1.UserPassProvider := IdUserPassProvider;
                IdSASLPlain := TIdSASLPlain.Create(SMTP);
                IdSASLPlain.UserPassProvider := IdUserPassProvider;
                IdSASLLogin := TIdSASLLogin.Create(SMTP);
                IdSASLLogin.UserPassProvider := IdUserPassProvider;
                IdSASLSKey := TIdSASLSKey.Create(SMTP);
                IdSASLSKey.UserPassProvider := IdUserPassProvider;
                IdSASLOTP := TIdSASLOTP.Create(SMTP);
                IdSASLOTP.UserPassProvider := IdUserPassProvider;
                IdSASLAnonymous := TIdSASLAnonymous.Create(SMTP);
                IdSASLExternal := TIdSASLExternal.Create(SMTP);

                SASLMechanisms.Add.SASL := IdSASLCRAMSHA1;
                SASLMechanisms.Add.SASL := IdSASLCRAMMD5;
                SASLMechanisms.Add.SASL := IdSASLSKey;
                SASLMechanisms.Add.SASL := IdSASLOTP;
                SASLMechanisms.Add.SASL := IdSASLAnonymous;
                SASLMechanisms.Add.SASL := IdSASLExternal;
                SASLMechanisms.Add.SASL := IdSASLLogin;
                SASLMechanisms.Add.SASL := IdSASLPlain;
              end; //If edSSLConnection
              Connect;
              try
                Send(IdMessage);
              finally
                Disconnect;
              end;
            end; //With ED, SMTP

        finally
          IdUserPassProvider.Free;
        end;
      finally
        SSLHandler.Free;
      end;
    finally
      SMTP.Free;
    end;
  finally
    IDMessage.Free;
  end;
end;

end.
{code}
0
Steen
1/22/2013 3:44:07 PM
Steen wrote:

> 1) should I have a combobox where the user can set
> SSLHandler.SSLOptions.Method (sslvSSLv23, sslvTLSv1, sslvSSLv3) ?

I would.  You can default to TLSv1, but still allow the user to specify an 
older method when needed.  Otherwise, you could just start with TLSv1, call 
Connect(), if it fails then try SSLv3, if it fails then try SSLv23.  Or just 
stick with SSLv23 by itself and let the SSL/TLS handshake determine the highest 
available SSL/TLS version dynamically.

> 2) Is the order of the SASLMechanisms OK ?

The order is important, so you need to order them in decreasing level of 
security - more secure up front, less secure in back.  What you have should 
be fine.

> if ED.edSSLConnection then IdUserPassProvider := TIdUserPassProvider.Create(nil);

SASL and SSL/TLS are two separate things, so handle them separately in your 
code.  Create the TIdSASL and TIdUserPassProvider components if there are 
authentication credentials provided, regardless of whether SSl/TLS is used. 
 Part of the reason SASL is popular is it allows credentials to be sent securely 
over an unsecured connection.

> Username := edSMTPUserName;
> Password := edSMTPPassword;

Since you are using AutoType-satSASL now, you don't need to set the TIdSMTP.Username 
and TIdSMTP.Password properties at all.

Try this:

{code:delphi}
procedure SendEmail(ED: TEmailData);
var
  IdMessage: TIdMessage;
  SMTP: TIdSMTP;
  SSLHandler: TIdSSLIOHandlerSocketOpenSSL;
  IdUserPassProvider: TIdUserPassProvider;
  IdSASLCRAMMD5: TIdSASLCRAMMD5;
  IdSASLCRAMSHA1: TIdSASLCRAMSHA1;
  IdSASLPlain: TIdSASLPlain;
  IdSASLLogin: TIdSASLLogin;
  IdSASLSKey: TIdSASLSKey;
  IdSASLOTP: TIdSASLOTP;
  IdSASLAnonymous: TIdSASLAnonymous;
  IdSASLExternal: TIdSASLExternal;
begin
  IdMessage := TIdMessage.Create(nil);
  try
    IdMessage.ContentType := 'text/plain';
    IdMessage.Charset := 'UTF-8';
    IdMessage.Body.Assign(ED.edBody);
    IdMessage.Sender.Text := ED.edSenderEMail;
    IdMessage.From.Name := ED.edSenderApp + ' (' + GetLocalComputerName + 
')';
    IdMessage.From.Address := ED.edSenderEMail;
    IdMessage.ReplyTo.EMailAddresses := ED.edSenderEmail;
    IdMessage.Recipients.EMailAddresses := ED.edToEmail;
    IdMessage.Subject := ED.edSubject;
    IdMessage.Priority := ED.edPriority;
    IdMessage.CCList.EMailAddresses := ED.edCCEMail;
    IdMessage.ReceiptRecipient.Text := '';
    IdMessage.BccList.EMailAddresses := '';

    SMTP := TIdSMTP.Create(nil);
    try
        if ED.edSSLConnection then
        begin
          SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(SMTP);
          SSLHandler.MaxLineAction := maException;
          SSLHandler.SSLOptions.Method := sslvSSLv23;
          SSLHandler.SSLOptions.Mode := sslmClient;
          SSLHandler.SSLOptions.VerifyMode := [];
          SSLHandler.SSLOptions.VerifyDepth := 0;
          SMTP.IOHandler := SSLHandler;
          SMTP.UseTLS := TIdUseTlS(ED.edUseTLS); //0,1,2,3 Could change Port
        end;
            
        if (ED.edSMTPUserName <> '') or (ED.edSMTPPassword <> '') then
        begin
          SMTP.AuthType := satSASL;

          IdUserPassProvider := TIdUserPassProvider.Create(SMTP);
          IdUserPassProvider.Username := ED.edSMTPUserName;
          IdUserPassProvider.Password:= ED.edSMTPPassword;

          IdSASLCRAMSHA1 := TIdSASLCRAMSHA1.Create(SMTP);
          IdSASLCRAMSHA1.UserPassProvider := IdUserPassProvider;
          IdSASLCRAMMD5 := TIdSASLCRAMMD5.Create(SMTP);
          IdSASLCRAMMD5.UserPassProvider := IdUserPassProvider;
          IdSASLSKey := TIdSASLSKey.Create(SMTP);
          IdSASLSKey.UserPassProvider := IdUserPassProvider;
          IdSASLOTP := TIdSASLOTP.Create(SMTP);
          IdSASLOTP.UserPassProvider := IdUserPassProvider;
          IdSASLAnonymous := TIdSASLAnonymous.Create(SMTP);
          IdSASLExternal := TIdSASLExternal.Create(SMTP);
          IdSASLLogin := TIdSASLLogin.Create(SMTP);
          IdSASLLogin.UserPassProvider := IdUserPassProvider;
          IdSASLPlain := TIdSASLPlain.Create(SMTP);
          IdSASLPlain.UserPassProvider := IdUserPassProvider;

          SMTP.SASLMechanisms.Add.SASL := IdSASLCRAMSHA1;
          SMTP.SASLMechanisms.Add.SASL := IdSASLCRAMMD5;
          SMTP.SASLMechanisms.Add.SASL := IdSASLSKey;
          SMTP.SASLMechanisms.Add.SASL := IdSASLOTP;
          SMTP.SASLMechanisms.Add.SASL := IdSASLAnonymous;
          SMTP.SASLMechanisms.Add.SASL := IdSASLExternal;
          SMTP.SASLMechanisms.Add.SASL := IdSASLLogin;
          SMTP.SASLMechanisms.Add.SASL := IdSASLPlain;
        end else begin
          SMTP.AuthType := satNone;
        end;

        SMTP.Host := edSMTPServer;
        SMTP.Port := edSMTPPort;
        SMTP.ConnectTimeout := 30000;
        SMTP.UseEHLO := True;

        SMTP.Connect;
        try
          SMTP.Send(IdMessage);
        finally
          SMTP.Disconnect;
        end;
      end;
    finally
      SMTP.Free;
    end;
  finally
    IdMessage.Free;
  end;
end;
{code}

--
Remy Lebeau (TeamB)
0
Remy
1/22/2013 6:04:09 PM
> {quote:title=Remy Lebeau (TeamB) wrote:}{quote}
>Since you are using AutoType-satSASL now, you don't need to set the TIdSMTP.Username and TIdSMTP.Password properties at all

I probably not would have figured that out by myself, so thank you for your code and your advices. It works and certainly is more readable without the with statements.

One problem is left though (still testing with gmail):

If the user selects wrong values my app sometimes freezes:

(Port:587, Implicit): an exception is raised. That's good enough.
(Port:465, Explicit): my app freeze. That's not good.

Which way to go to prevent freezing?

Should I use some event and raise an exception here or maybe some of the logging modes of Indy?

TIA
Steen
0
Steen
1/23/2013 5:39:02 PM
Steen wrote:

> (Port:587, Implicit): an exception is raised. That's good enough.

TIdSMTP sends an SSL/TLS handshake immediately upon connection, but the SMTP 
server is not expecting that, so it assumes TIdSMTP sent an invalid command 
and replies accordingly.

> (Port:465, Explicit): my app freeze. That's not good.

The server is waiting for TIdSMTP to send an SSL/TLS handshake upon connecting, 
before then sending any SMTP commands.  However, TIdSMTP is waiting for the 
server to send an unencrypted SMTP greeting before sending anything to to 
the server.  Deadlock occurs.  The solution is to set the TIdSMTP.ReadTimeout 
property (it is set to an infinite timeout by default).

--
Remy Lebeau (TeamB)
0
Remy
1/23/2013 6:20:54 PM
> {quote:title=Remy Lebeau (TeamB) wrote:}{quote}
>The solution is to set the TIdSMTP.ReadTimeout  property (it is set to an infinite timeout by default).

It now works like a charm :)

Thank you very much.
0
Steen
1/24/2013 5:23:19 PM
Reply:

Similar Artilces:

Why do Sending SMTP Authenticated E-mail succeed using SmtpMail.Send() function but fail using SmtpClient.send() function ? Bugs in System.Net.Mail.SmtpClient when send a Authenticated E-mail?
I click btnOK button, the email can send OK, but click btnFail button,  the following error is displayed! why ? you can test the section code. The SMTP, username, password are valid!  Many thanks! "Syntax error, command unrecognized. The server response was: authentication failed,decode user password error" I have tested some other SMTP, somes is OK. I think there are some bugs with System.Net.Mail.SmtpClient when send a Authenticated E-mail with some SMTP!   //------------------------------------------.ASPX Code----------------------------------------...

Someone using my e-mail address to send me e-mail
I use Outlook Express and I am getting spam e-mails sent to my hotmail e-mail address from what appears to be my own e-mail address. If I put in a rule blocking my own e-mail address I won't get any mail. Does anyone know how to block spam e-mail when spamers use your own e-mail address in the From: area to send you spam. Occasionally I blind copy myself to save a copy of my e-mail so I can't block myself solely on my e-mail address. Is there a way to block messages using the From: field in conjunction with an IP address that is not mine? Hope I described this problem corre...

Integrated E-Mail Client: Send and Receive plaintext E-Mails next to encrypted E-Mails
<DIV style="font-family:Arial, sans-serif; font-size:10pt;">Integrated E-Mail Client: Send and Receive plaintext E-Mails next to encrypted E-Mails<BR>https://twitter.com/GoldBugIM/status/559122664800133120<BR><BR>At least it is an open source solution and not proprietary like<BR>https://www.scryptguard.de/scryptguard-email-verschluesselung/<BR><BR>Does this work with Tor?<BR>Regards John<BR><BR>&nbsp;<BR><HR>Are you a Techie? Get Your Free Tech Email Address Now! Visit http://www.TechEmail.com</DIV> ...

Firefox 1.07 will not "send link" i.e won't hook into e-mail to send link. If I use Mozilla suite no problems????
Name: george clark Email: gclark38_at_gmail.com Product: Firefox Summary: Firefox 1.07 will not "send link" i.e won't hook into e-mail to send link. If I use Mozilla suite no problems???? Comments: Not sure if this the right place to send this question. Otherwise great set of programs, like them alot Browser Details: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7 ...

how to send mail using IMAP4/SSL mail protocols
How to send mail using IMAP4/SSL mail protocols.Not using SMTP and POP.Please its urgent.MY MAIL ID :   viswa.vp@gmail.complease.Thankss.viswanathan Hi, searching on the web gives me some links, for example:http://bbs.techtarget.com.cn/viewthread.php?tid=10239&pid=17294&page=11&extra=page%3D1#pid17294Welcome to my SQL/ASPNET forum for Chinese http://51up.org/bbs/forumdisplay.php?fid=38 Hi, searching on the web gives me some links, for example:http://bbs.techtarget.com.cn/viewthread.php?tid=10239&pid=17294&page=11&extra=page%3D1#pid17294Welcome to my SQL/...

While using Thunderbird, I attempted to send an e-mail using all the addresses in my address book. After I clicked "send," a box appeared that read "Invalid address syntax." Any suggestions
Name: Matthew Hankey Email: mattataltoonastardotorg Product: Thunderbird Summary: While using Thunderbird, I attempted to send an e-mail using all the addresses in my address book. After I clicked "send," a box appeared that read "Invalid address syntax." Any suggestions Comments: I checked the e-mail recipients addresses and they all appeared to be fine. Would it make a difference if the recipients name was next to his e-mail address (i.e. "Freeland, Bruce" <freeland.bruce@mayo.edu>). Browser Details: Mozilla/5.0 (Windows; U; Windows NT 6....

Indy E-Mail Problem (Indy 10, Delphi 2007)
Hello, we use Indy 10 with Delphi 2007 to get E-Mail using IMAP. We recieved an E-Mail which is not handled correctly. The E-Mail looks like this {code} Return-Path: <test@mail.com>; From: "Test Tester" <test@mail.com>; To: <test@mail.com>; Subject: Order Date: Wed, 7 Mar 2012 16:50:40 +0100 Message-ID: <15D526BEB8091D43859549D9E16E370FBA3123> MIME-Version: 1.0 Content-Type: text/html; charset=US-ASCII Content-Transfer-Encoding: quoted-printable X-Mailer: Microsoft Outlook 14.0 Thread-Index: AQFk6K6fcF3...

an e-mail send from my e-mail address to myself?
today i'm received an e-mail send from my own e-mail address with an attachment ( *.z ), but not send by me. how come this can happen. i'm only using online web e-mail service. Virus scan result show me this message : Virus scanning not supported for this type of file.  what is your opinion?Thanks & Regards--"Don't just always label good or bad about something, always have something is invisible from nude eyesight. " You've been spoofed. If you don't know how this can happen, what are you doing here? Seriously, delete it, why even worry about it? War doesn't determine who is rig...

How to send e-mail to invalid address using System.Net.Mail.MailMessage
Hi all,i need create MailMessage with invalid address. It is posible? I need send mail to smtp server with MailMessage.To = "[FAX: ...fax number.....]". Thanks all for any help! p.s.: sorry for my english.  It can't be an invalid email address, but if you run a fax server the email address in the fax server syntax should work fine. JeffPlease: Don't forget to click "Mark as Answer" on the post that helped you. That way future readers will know which post solved your issue....

Send e-mail with attachment using default email client using ASP.NET
Hi,                 In my application (web based application) a send link is there. Onclick of that I want to open the default email client on the local machine with a file attached to it and let the user enter the additional details (recipients, etc). The email client will be MS Outlook or Lotus Notes 8 or any other thing.I have tried:- Mailto, but this does not seem to be a very stable solution and not able to attach file to it.- Smtp, but I am not able to open the email client before sendingI hope someone...

send mail using ssl
I have a page with SSLI want to send the data also using SSL, but with no successI try to write smtp.EnableSSL = true;but i got en error, How can I send mail With SSL? Thanks! Friend, check this way for implementing 'Send Mail' through SSL http://www.aspcode.net/Send-mail-from-ASPNET-using-your-gmail-account.aspx http://www.systemnetmail.com/faq/4.5.aspx Good luck!   Please Don't forget to click "Mark as Answer" on the post that helped you.This can be beneficial to other community members reading the thread.  yes i saw this 2 arti...

Send e-mail with attachment using default email client using ASP.NET #2
Post split off from http://forums.asp.net/t/1350606.aspx.  Hi, how to open default mail client with attachment from web application? Regards, Kate Hi check this link for Sending Email with attachment in ASP.NET using SMTP Server http://www.codeproject.com/KB/aspnet/SivaEMailSample.aspx you can also try this example to send Email using Gmail Account http://yasserzaid.wordpress.com/2009/04/12/send-email-using-gmail-account/ Hope this helps Good Luck...

Send HTML e-mail or text e-mail
I'd like to send a user an HTML e-mail if they are capable of it, but if not, send them a text e-mail.  How can I do this? Hi,  I don't think there is a way to detect this.  The mail server doesn't care if it is html or text.  It is the client that usually limits if it can read html or text.  Here's a link for sending both a html and text version http://dotnetdud.blogspot.com/2008/05/create-html-message-with-embedded.html I hope this helpsMike Douglasblog - http://www.CodeSmartNotHard.comWebSite - http://www.DOITConsultants.com...

Internet E-mail going out from account that is not sending e-mail
I have a user that we are seeing approx 15 e-mails an hour trying to go out to the internet even though she is not sending these messages. Her computer was turned off and I blocked all internet e-mail usage on the GWIA for her account. If I try to send a message to the internet from her account I get access denied message so I know the block on the GWia is working. They are all going to the same address externally. This is a Groupwise 6.5 sp2 system. Any suggestions? Look for pktscan102 @ support.novell.com Launch it @ the gwia-server, and look @ the tracefile with eth...

Web resources about - Indy: Sending E-mails using SSL - embarcadero.delphi.winsock

Sending/receiving relationship - Wikipedia, the free encyclopedia
A sending/receiving relationship is one in which a public school district sends some or all of its students to attend the schools of another ...

U.K. Woman Faces 20 Months For Creating Fake Facebook Accounts, Sending Herself Abusive Messages
A woman in Cornwall in the U.K. came up with a creative way to use Facebook to accelerate a family spat, and it earned her 20 months in prison. ...

CHVRCHES - Dear guys, Please stop sending us emails like... - Facebook
Dear guys, Please stop sending us emails like this. This is one of the more polite ones. Other recent classics include "I'm going to give her ...

Facebook Sending Perez Hilton More Traffic than Google, Driving 3.3% of All US Traffic to Video Sites ...
For media companies evaluating their Facebook marketing strategy , here’s an interesting sign of the times: web analytics firm Hitwise is reporting ...

A better experience for sending Tweets and DMs - Twitter Blog
... panel New Tweet panel in da...... Skip to main content Blog Got an account? Sign in Search form Search &nbsp A better experience for sending ...

How to Go From Working 60 Hours a Week to 40 By Sending 2 Emails a Week
I’m convinced 95% of cubicle workers who work over 60 hours a week constantly can cut it down to 40-45 hours by sending 2 emails a week to their ...

Live Emoji - sending GIF Animation Emoji for Zoosk,Skype,Kik,Whatsapp,Facebook Messenger Etc. on the ...
Get Live Emoji - sending GIF Animation Emoji for Zoosk,Skype,Kik,Whatsapp,Facebook Messenger Etc. on the App Store. See screenshots and ratings, ...


Cynthia McKinney - responds to Obama on sending troops into Afghanistan - Debate Answer - YouTube
Cynthia McKinney, Green Party Presidential candidate, responds to Barack Obama on his support for sending troops into Afghanistan. Based on his ...

Great-grandmother 'would die' before sending kids to Italy
Great-grandmother 'would die' before sending kids to Italy

Resources last updated: 1/15/2016 4:38:47 PM