如何用ASP发送电子邮件..NET和c#
本文关键字:NET 电子邮件 何用 ASP | 更新日期: 2023-09-27 18:09:23
我正在尝试创建一个接收用户信息(包括电子邮件)的web服务,然后发送确认电子邮件。你知道我该怎么做吗?我必须在我的机器上安装SMTP服务器吗?
您可以使用任何远程SMTP服务器,除非需要,否则不需要在本地设置。我为它创建了一个辅助方法:
您需要导入命名空间:
using System;
using System.Net.Mail;
下面是一个助手方法,它显示了使用SmtpClient类发送的用法:
public static void SendMessage(string smtpServer, string mailFrom, string mailFromDisplayName, string[] mailTo, string[] mailCc, string subject, string body)
{
try
{
using (SmtpClient client = new SmtpClient(smtpServer))
{
string to = mailTo != null ? string.Join(",", mailTo) : null;
string cc = mailCc != null ? string.Join(",", mailCc) : null;
MailMessage mail = new MailMessage();
mail.From = new MailAddress(mailFrom, mailFromDisplayName);
mail.To.Add(to);
if (cc != null)
{
mail.CC.Add(cc);
}
mail.Subject = subject;
mail.Body = body.Replace(Environment.NewLine, "<BR>");
mail.IsBodyHtml = true;
client.Send(mail);
}
}
catch (Exception ex)
{
// exception handling
}
}
请注意,如果您希望邮件尽可能快地发送而不延迟,那么您应该在完成SmtpClient后处理它。有关不立即发送消息的更多信息,请参阅System.Net.Mail和MailMessage。上面的方法已经处理了它,因为SmtpClient被包装在using块中,所以这个方法已经处理好了。
你试过谷歌答案吗?它遍布网络和stackoverflow -
通过Gmail在。net中发送电子邮件
关于第一个问题
System.Web.Mail.MailMessage message=new System.Web.Mail.MailMessage();
message.From="from e-mail";
message.To="to e-mail";
message.Subject="Message Subject";
message.Body="Message Body";
System.Web.Mail.SmtpMail.SmtpServer="SMTP Server Address";
System.Web.Mail.SmtpMail.Send(message);
If you want the shortest way:
System.Web.Mail.SmtpMail.SmtpServer="SMTP Host Address";
System.Web.Mail.SmtpMail.Send("from","To","Subject","MessageText");
和关于SMTP,不,你可以使用SMTP谷歌为例或雅虎
通过Google Apps帐户通过c#发送电子邮件
使用c#通过Gmail SMTP服务器发送邮件
为了确保健壮的交付,您的解决方案应该包含两个部分:
客户端应用程序(本例中为web服务)应该向消息队列(MSMQ)提交一封电子邮件消息(序列化为xml)。
在后台运行的windows服务应用程序(守护进程)应该在消息到达时(或按照计划)检查队列,对消息进行反序列化,并将其发送到SMTP服务器。
如果这是在windows上构建的,您可以在您的工作站上使用smtp4dev来表示SMTP服务器。Windows服务、SMTP服务器、MSMQ服务器、Web服务器都可以在不同的机器上。
不,您不需要设置一个本地smtp服务器,正如mservidio上面提到的,您可以使用远程服务器。我会这样写:
:
using System.Net.Mail;
using System.Net;
使用下面的方法,你可以发送带有附件的邮件。
public static void Send(string replyTo, string from, string subject, string body, bool html, List<string> files)
{
MailMessage message = new MailMessage();
message.To.Add(replyTo);
message.Subject = subject;
message.From = new MailAddress(from);
message.Body = body;
message.IsBodyHtml = html;
if (files != null) message = AttachFiles(files, message);
SmtpClient sMail = new SmtpClient("smtp.client.com");
sMail.Port = 25;
sMail.DeliveryMethod = SmtpDeliveryMethod.Network;
sMail.Credentials = new NetworkCredential("user", "pass");
sMail.Send(message);
}
public static MailMessage AttachFiles(List<string> files, MailMessage message)
{
foreach (string filePath in files)
{
message.Attachments.Add(new Attachment(filePath));
}
return message;
}
public void SendMail(string tomail, string password)
{
{
try
{
SmtpClient mailClient = new SmtpClient();
MailMessage mailMessage = new MailMessage();
mailMessage.To.Add(tomail);
mailMessage.From = new MailAddress("email", "show name");
mailMessage.Subject = "Your password";
mailMessage.Body = "Your password is :" + password;
mailMessage.IsBodyHtml = true;
mailMessage.Priority = MailPriority.Normal;
mailClient.Host = "Smtp.gmail.com";
mailClient.Port = 587;
mailClient.UseDefaultCredentials = false;
mailClient.Credentials = new NetworkCredential("ur email id", "ur password");
mailClient.EnableSsl = true;
mailClient.Send(mailMessage);
lblPassword.Text = "<b>Mail Successfully Sent..!!</b>";
}
catch (Exception ex)
{
ex.ToString();
lblPassword.Text = "<b>Error For Sending Mail..!!</b>";
}
}
}