Thank you for your post.
You'll need a key field between your Contacts table and Running Log table. For this example, I will call it "CustID".
When you find the contact, you can switch to a layout that includes "To" (already filled in with Email field), "Subject" and "Message". These latter two fields can be global storage for now.
Once the information is filled out, you can press a button which will do the following:
Set Error Capture [ On ]
Send Mail [ To: <Email field> ; Subject: <Subject field>; Message: <Message field> ]
If [ Get ( LastError ) = 0 ]
Go to Layout [ <layout with Running Log fields> ]
Set Field [ CustID ; Contacts::CustID ]
Set Field [ Subject ; Contacts::Subject ]
Set Field [ Message ; Contacts:: Message ]
Go to Layout [ <original layout in Contacts> ]
Set Field [ Contacts::Subject ; "" ]
Set Field [ Contacts::Message ; "" ]
Explanation... I turn on Error capture and send the mail. If the mail fails, then the If clause is false and leaves you back at the same place so you can try again. You could also put a dialog box in an "Else" option so you know what occurred.
If you received no errors, then the focus goes to the layout with the Running Log fields, adds a new record, updates the CustID field from the Contacts table, since we want to attach this to the particular Contact, and add the Subject and Message information. If you want to add the date, do that here, too. Return to the original layout and remove the information from the two global fields "Subject" and "Message" (unless you want to send a similar message to someone else).
This should get you pointed in the right direction.