let us say, I use program "x" for my e-mail security. through them I have a public key and a private key. My friend uses program "y" for their e-mail security and consequentially have a public key and a private key. The question is when I use my friend's public key (not from my program) to send them an encrypted e-mail (by my program), will they be able to read it, and how?
let us say, I use program "x" for my e-mail security. through them I have a public key and a private key. my friend does not have encrypted e-mail program. when I send my friend an encrypted e-mail will he be able to read it, and how?
If both email client supports S/MIME (Secure/Multipurpose Internet Mail Extensions) which uses the industry-standard X.509 version 3 certificates then yes, they are compatible.
Examples of such programs include Microsoft Outlook, Mozilla Thunderbird, Apple Mail and Mulberry Mail etc.
If your friend does not have a compatible email client, then he will have to manually use external toolkits like OpenSSL (example commands) to decrypt the encrypted S/MIME email.
There are two main standards for email encryption, which are called OpenPGP and S/MIME. Though they may internally end up with using the same core cryptographic algorithms, they are very distinct formats and they don't interoperate. This means that if you and your friend both use S/MIME-capable software, or if you both use PGP, then you may be able to exchange encrypted emails. Otherwise, no.
As for your second question: email encryption must be performed by the sender with the recipient's public key; and the recipient's software will do the decryption. Such things cannot happen unless both sender and recipient use software which know about encryption, and using the same standard. Moreover, it is the recipient who must have a public/private key pair. The sender uses his own private key to sign the messages he send, not to encrypt them. Though it is best if the sender also has a private key for encryption, not for the message he sends, but because the recipient might want to respond with an encrypted message of his own.
Main email software brands (e.g. Windows Mail, Thunderbird,...) know about S/MIME but won't do anything in that respect until you have obtained a public/private key pair, with the public key as part of an X.509 certificate. Webmails, as a rule, cannot do S/MIME (some can, e.g. Zimbra, but with some client-side code, a signed Java applet in that case). For OpenPGP, there are plugins for various software and OS.