
To send a message to someone , you will need to know their exact E-mail address . It is typically the person 's " UserID@their_provider's_name " . E-mail addresses generally do not contain the following - commas , parentheses , or spaces . If you do not know someone 's e-mail address , your best bet would be to simply ask them , or you can try to find them in an Internet Directory such as WhoWhere . c om How do I attach files to E-Mail messages ? You can attach just about any file to an e-mail message and send it anybody on the Internet . The person receiving the file will need the appropriate application to open the file when they get it . For example , the recipient will not be able to view a PowerPoint file if they do not have Power Point Viewer on their system . To attach a file with Outlook Express , click the paperclip icon in the new message window . Enter the location or browse for the file on your system . The attached file will be displayed along with your new message . What is a signature file ? Signature files are text files that are automatically added to the end of e-mail messages . To create one , simply use any text editor such as Notepad . A signature file can be your name , your title , or a hyperlink to your web page . Save the file as a . t xt file . In the Outlook Express window , click on Tools at the top and go to Stationary . Click on the Signature button . You can either enter the text in the window or point to the text file on your system . 