在大学三年级的项目中,需要在网站项目中实现邮件发送功能。为了找到解决方案,浏览了许多网站和博客。通过本文提供的类文件,可以使用Gmail账户凭证来发送电子邮件。
确保使用正确的参数实例化这个类的实例。
要使用这个类,请将其添加到网站的App_Code文件夹中。然后,创建一个网页来获取发送邮件所需的用户输入,例如:收件人、主题和消息。然后,根据需求编辑用户名和密码文件。在这里,为了允许用户发送邮件,请确保通过网站获取用户名和密码。然后,添加两个更多的变量来传递用户名和密码到应用程序。
以下是使用C#语言编写的sendMail()方法的示例代码:
public static void sendMail(
string to,
string from,
string subject,
string body,
string username,
string password)
{
// Smtp配置
SmtpClient client = new SmtpClient(
"smtp.gmail.com",
465
);
// 编辑密码和用户名
client.Credentials = new NetworkCredential(
string.Format("{0}@gmail.com", username), password);
client.EnableSsl = true;
Mail.Fields[
"http://schemas.microsoft.com/cdo/configuration/sendusername"
] = string.Format("{0}@gmail.com", username);
Mail.Fields[
"http://schemas.microsoft.com/cdo/configuration/sendpassword"
] = password;
}
如果不允许每个用户发送电子邮件,而只允许特定用户发送,那么可以为所有邮件发送者使用一个通用的电子邮件,例如admin@obrs.com。然后,不需要更改任何其他方法定义,但请确保更改用户名和密码。
这个类的主要特点是它有一个备用计划,以防万一,可以调用。邮件发送方法是sendMail(),但如果失败,它将调用一个替代的邮件发送方法SendMailAlt(),使用适当的属性。但是,第二种方法不允许发送附件。所以不要允许用户在任何方法中添加附件。
如果主要的sendMail()方法失败,可以使用SendMailAlt()作为备用方案。以下是SendMailAlt()方法的示例代码:
public static void SendMailAlt(
string to,
string from,
string subject,
string body,
string username,
string password)
{
// Smtp配置
SmtpClient client = new SmtpClient(
"smtp.gmail.com",
465
);
// 编辑密码和用户名
client.Credentials = new NetworkCredential(
"USERNAME@gmail.com",
"PASSWORD"
);
client.EnableSsl = true;
MailMessage mail = new MailMessage();
mail.From = new MailAddress(from);
mail.To.Add(to);
mail.Subject = subject;
mail.Body = body;
try
{
client.Send(mail);
}
catch (Exception ex)
{
// 处理异常
Console.WriteLine("邮件发送失败: " + ex.Message);
}
}