您好我在我的页面上设置了一个表单。如何通过电子邮件发送给定的电子邮件地址?
<form action="#">
<p>Please contact us</p>
<input type="text" maxlength="30" value="Name" class="textcontact" />
<input type="text" maxlength="30" value="E-mail Address" class="textcontact" />
<input type="text" maxlength="30" value="Subject" class="textcontact" />
<textarea name="message" id="message" cols="30" rows="10"></textarea>
<input type="submit" value="" class="submit" />
</form>
我知道这与表单操作有关。但是webmatrix 2(?)中没有控制器或任何东西。我如何使它工作?
答案 0 :(得分:2)
以下是从Webforms 2中完全按照您的要求做的指南。
http://www.asp.net/web-pages/tutorials/email-and-search/11-adding-email-to-your-web-site
创建一个新网站。
添加名为EmailRequest.cshtml的新页面并添加以下标记:
<!DOCTYPE html>
<html>
<head>
<title>Request for Assistance</title>
</head>
<body>
<h2>Submit Email Request for Assistance</h2>
<form method="post" action="ProcessRequest.cshtml">
<div>
Your name:
<input type="text" name="customerName" />
</div>
<div>
Your email address:
<input type="text" name="customerEmail" />
</div>
<div>
Details about your problem: <br />
<textarea name="customerRequest" cols="45" rows="4"></textarea>
</div>
<div>
<input type="submit" value="Submit" />
</div>
</form>
</body>
</html>
请注意,表单元素的action属性已设置为ProcessRequest.cshtml。这意味着表单将提交到该页面,而不是返回到当前页面。
在网站上添加一个名为ProcessRequest.cshtml的新页面,并添加以下代码和标记:
@{
var customerName = Request["customerName"];
var customerEmail = Request["customerEmail"];
var customerRequest = Request["customerRequest"];
var errorMessage = "";
var debuggingFlag = false;
try {
// Initialize WebMail helper
WebMail.SmtpServer = "your-SMTP-host";
WebMail.SmtpPort = 25;
WebMail.UserName = "your-user-name-here";
WebMail.Password = "your-account-password";
WebMail.From = "your-email-address-here";
// Send email
WebMail.Send(to: customerEmail,
subject: "Help request from - " + customerName,
body: customerRequest
);
}
catch (Exception ex ) {
errorMessage = ex.Message;
}
}
<!DOCTYPE html>
<html>
<head>
<title>Request for Assistance</title>
</head>
<body>
<p>Sorry to hear that you are having trouble, <b>@customerName</b>.</p>
@if(errorMessage == ""){
<p>An email message has been sent to our customer service
department regarding the following problem:</p>
<p><b>@customerRequest</b></p>
}
else{
<p><b>The email was <em>not</em> sent.</b></p>
<p>Please check that the code in the ProcessRequest page has
correct settings for the SMTP server name, a user name,
a password, and a "from" address.
</p>
if(debuggingFlag){
<p>The following error was reported:</p>
<p><em>@errorMessage</em></p>
}
}
</body>
</html>
答案 1 :(得分:1)
您可以拥有以下网页并使用SmtpClient课程发送电子邮件:
@using System.Net.Mail;
@{
if (IsPost)
{
var email = Request["Email"];
var subject = Request["Subject"];
var message = Request["Message"];
using (var client = new SmtpClient())
{
var msg = new MailMessage();
msg.To.Add(email);
msg.Subject = subject;
msg.Body = message;
client.Send(msg);
<text>The email has been successfully sent</text>
}
}
}
<form action="" method="post">
<p>Please contact us</p>
<input type="text" name="email" maxlength="30" value="to@gmail.com" />
<input type="text" name="subject" maxlength="30" value="Subject" />
<textarea name="message" cols="30" rows="10"></textarea>
<input type="submit" value="Send" class="submit" />
</form>
并在您的web.config中配置您的SMTP服务器。以下是Gmail的一个示例:
<system.net>
<mailSettings>
<smtp from="youraccount@gmail.com">
<network
host="smtp.gmail.com"
password="secret"
port="587"
userName="youraccount@gmail.com"
enableSsl="true"
/>
</smtp>
</mailSettings>
</system.net>