我有一个我想在Web窗体应用程序中使用的类文件。这是我在互联网上找到的。我已将它放在App_Code文件夹中,并尝试在事件上使用它
protected void sendBtn_Click(object sender, EventArgs e)
{
}
班级档案:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
public class SendEmail
{
public void SendMailMessage(string from, string to, string bcc, string cc, string subject, string body)
{
// Instantiate a new instance of MailMessage
MailMessage mMailMessage = new MailMessage();
// Set the sender address of the mail message
mMailMessage.From = new MailAddress(from);
// Set the recepient address of the mail message
mMailMessage.To.Add(new MailAddress(to));
// Check if the bcc value is null or an empty string
if ((bcc != null) && (bcc != string.Empty))
{
// Set the Bcc address of the mail message
mMailMessage.Bcc.Add(new MailAddress(bcc));
} // Check if the cc value is null or an empty value
if ((cc != null) && (cc != string.Empty))
{
// Set the CC address of the mail message
mMailMessage.CC.Add(new MailAddress(cc));
} // Set the subject of the mail message
mMailMessage.Subject = subject;
// Set the body of the mail message
mMailMessage.Body = body;
// Set the format of the mail message body as HTML
mMailMessage.IsBodyHtml = true;
// Set the priority of the mail message to normal
mMailMessage.Priority = MailPriority.Normal;
// Instantiate a new instance of SmtpClient
SmtpClient mSmtpClient = new SmtpClient();
// Send the mail message
mSmtpClient.Send(mMailMessage);
}
}
我无法访问这些方法,并尝试了以下方法:
SendEmail send = new SendEmail();
var send = new SendEmail();
SendEmail.SendMailMessage
using SendEmail
所有这些都无济于事。
我是一个绝对的初学者
答案 0 :(得分:1)
在执行任何其他操作之前,您需要将System.Net.Mail命名空间添加到SendEmail类文件中。
这会让你 -
using System.Net.Mail;
public class SendEmail
{
public void SendMailMessage(string from, string to, string bcc, string cc, string subject, string body)
{
// Instantiate a new instance of MailMessage
MailMessage mMailMessage = new MailMessage();
// Set the sender address of the mail message
mMailMessage.From = new MailAddress(from);
// Set the recepient address of the mail message
mMailMessage.To.Add(new MailAddress(to));
// Check if the bcc value is null or an empty string
if ((bcc != null) && (bcc != string.Empty))
{
// Set the Bcc address of the mail message
mMailMessage.Bcc.Add(new MailAddress(bcc));
} // Check if the cc value is null or an empty value
if ((cc != null) && (cc != string.Empty))
{
// Set the CC address of the mail message
mMailMessage.CC.Add(new MailAddress(cc));
} // Set the subject of the mail message
mMailMessage.Subject = subject;
// Set the body of the mail message
mMailMessage.Body = body;
// Set the format of the mail message body as HTML
mMailMessage.IsBodyHtml = true;
// Set the priority of the mail message to normal
mMailMessage.Priority = MailPriority.Normal;
// Instantiate a new instance of SmtpClient
SmtpClient mSmtpClient = new SmtpClient();
// Send the mail message
mSmtpClient.Send(mMailMessage);
}
}
其中没有其他“使用”是必需的,默认情况下这些是由Visual Studio添加的,但实际上并没有在类中使用。
然后您只需在页面中使用以下内容即可 -
protected void sendBtn_Click(object sender, EventArgs e)
{
SendEmail send = new SendEmail();
send.SendMailMessage("from@domain.com", "to@domain.com", null, null, "Test e-mail", "Test e-mail");
}
我怀疑你的班级没有编译的事实是绊倒了你。上面的代码在示例项目中都没有问题。
虽然这超出了问题的范围,但我很想让帮助程序类保持静态,因此您不必一直实例化SendEmail的新副本。
有关using指令的详细信息,请参阅http://msdn.microsoft.com/en-us/library/dfb3cx8s.aspx和http://msdn.microsoft.com/en-us/library/sf0df423.aspx。
答案 1 :(得分:1)
我想推荐这些:
将命名空间添加到您的类文件中。 使用System.Net.Mail;
调用函数时提供参数(SendMailMessage)。
将类SendMail作为静态类,将SendMailMessage作为静态函数。
答案 2 :(得分:0)
将您的类文件放在调用sendBtn_Click
的代码所在的文件夹中。如果带有处理程序的代码在顶部某处显示namespace SomeNamespace {
的行,请确保您复制的类文件也具有相同的行。你的花括号可能会有所不同。
答案 3 :(得分:0)
一般来说,我要做的是在visual studio解决方案中创建一个单独的“Library”项目,并从您的主网站项目中引用它。
您的新SendMail类将进入其中。
有时你似乎只需要一些帮助类,但数量往往会随着时间的推移而增长。随着项目的发展,分离出来也有助于编译速度/组织。
答案 4 :(得分:0)
将您的班级文件更改为:
namespace MyCompany
{
public class SendEmail
{
//Class properties and methods here.
}
}
然后在您的网络表单代码后面添加:
using MyCompany;
以下是您可能会发现有用的using namespaces的更多信息。