Te contesto punto por punto.
1) Si se pueden hacer las modificaciones, anda probando. También podes desde Comportamientos controlar los campos que quieres que sean obligatorios. Si no te llega a salir, avisame.
2) Si, las formas son mediante ASP o CGI, acá te paso un código de ASP (cópialo dentro del BODY):
<body bgcolor=white>
------------------------------
<% if request.ServerVariables("REQUEST_METHOD") = "GET" then
%>
<form action="htmlemail.asp" method=post>
<font face=verdana>
Your Name <input type="text" name="strName"> Your EMail <input type="text" name="strEmail">
<br>
Recipient Email <input type="text" name="strTo">
<p>
<textarea cols=40 rows=4 name=message>Your message</textarea>
</p>
<input type=submit name=send value=Send>
</form>
<%
else
Set objMail = Server.CreateObject("CDONTS.NewMail")
objMail.Importance = 1
objMail.From = request("strName") & "<" & request("strEmail") & ">"
objMail.To = request("strTo")
objMail.Subject = "Example of HTML EMail with Embeded Image"
' this is my messages HTML
strMsg = "" & _
"<html><body bgcolor=red>" & _
"<a href=""
http://www.RealWorldASP.com/""><img src=""logo.gif"" border=0 alt=""RealWorldASP"">" & _
"</a><p><font face=verdana>Example of a HTML Email with embedded Image<P><br>" & _
request("message") & _
"</body></html>"
' set the format of the email to html, etc
objMail.BodyFormat = 0
objMail.MailFormat = 0
objMail.Body = strMsg
' attach our image file and set the url to simply logo.gif
objMail.AttachURL server.MapPath("logo.gif"), "logo.gif"
objMail.Send
' destroy the email object
Set objMail = Nothing
%>
<h1>
<font face=verdana>Message Sent, Thanks!</font>
</h1>
<% end if %>
----------------------------
3) CGI no es más que una forma de comunicar información entre un servidor de web y un programa ejecutable nativo que está en la misma máquina que dicho servidor. Un CGI permite pasar información en ambos sentidos (parámetros y resultados). No es un lenguaje, sólo una forma de pasar información. Lo mismo que la línea de comandos del sistema operativo. De ahí lo de "interfaz". Un programa CGI puede estar hecho en cualquier cosa siempre que:
1) Se ejecute en la máquina del servidor
2) Sea capaz de leer variables de entorno y la entrada estándar del sistema operativo (concepto cuasi universal)
3) Sea capaz de escribir en la salida estándar del sistema operativo
4) El servidor sea capaz de ejecutarlo
Para crear el CGI se puede usar Visual Basic, Perl, Rexx, Clipper, Visual C, Borland C, Delphi, etc. Una vez creado el CGI en tu ordenador, lo pasas al servidor y lo compilas allí. El hecho de que CGI esté universalmente soportado ayuda a que el código fuente de un programa CGI pueda recompilarse y funcionar en cualquier entorno. No obstante, eso dependerá mucho de qué lenguaje se use para desarrollar el programa. Por ejemplo, ISAPI sólo funciona en Windows.