如何使用C#发送邮件?

5

我想使用 C# 发送邮件到任何电子邮件地址,我正在本地主机上工作。请问如何操作?


1
可能是 https://dev59.com/uHRB5IYBdhLWcg3w-789 的重复问题。 - Dykam
7个回答

8
System.Net.Mail.MailMessage message=new System.Net.Mail.MailMessage(
                new MailAddress(EmailUsername), new MailAddress("toemailaddress"));

message.Subject = "Message Subject";   // E.g: My New Email
message.Body = "Message Body";         // E.g: This is my new email ... Kind Regards, Me

对于SMTP部分,您也可以使用 SmtpClient

SmtpClient client = new SmtpClient(ServerIP);
client.Credentials = new System.Net.NetworkCredential(EmailUsername, EmailPassword);
client.Send(message);

请考虑采纳一些答案。0%的采纳率并不好。
编辑以修复愚蠢的错误。我应该先检查代码的。

1
System.Web.Mail已被弃用。 - Richard Szalay
To 属性是一个集合,而 From 不是一个字符串。 - Richard Szalay
我建议改进只需 SmtpClient client = new SmtpClient(),然后使用 web.config 进行配置 <mailSettings> <smtp from="me@my.net"> <network host="myhost.com" password="if needed" userName="if neede"/> </smtp> </mailSettings> - Emanuele Greco

4
你可以使用 SmtpClient 类,并使用 Send(或 SendAsync)方法和一个 MailMessage 实例。这两个类都在 System.Net.Mail 命名空间中。 默认构造函数 会使用应用程序/网站配置文件中的 配置信息,但您也可以使用 其他构造函数 来指定所需的 SMTP 设置。
// using System.Net.Mail;

SmtpClient client = new SmtpClient();

MailMessage mm = new MailMessage()
{
    Subject = "Subject here",
    Body = "Body here"
};

mm.To.Add("email@tempuri.org");
mm.From = new MailMessage("from@tempuri.org");

client.Send(mm);

+1 指出我回答中的错误。现在已经排序。 - Kyle Rosendo

2

补充一下,有一个非常好的网站,里面包含关于System.Net:Mail命名空间的所有知识

它叫:

http://www.SystemNetMail.com/

希望能帮助像我一样需要帮助的人 :)


只是想说谢谢你的认可。我总是很高兴遇到其他开发者喜欢我的网站。谢谢!Dave。 - dave wanta

0

试试这个...

public static void Send(string pFrom, string pSubject, string pTo, string pBody)
{
    System.Net.Mail.MailMessage loMail = new System.Net.Mail.MailMessage();
    System.Net.NetworkCredential loCredencial = new System.Net.NetworkCredential(MAIL_USERNAME, MAIL_PASSWORD);
    loMail.To.Add(pTo);
    loMail.Subject = pSubject;
    loMail.From = new System.Net.Mail.MailAddress(pFrom);
    loMail.IsBodyHtml = true;
    loMail.Body = pBody;
    System.Net.Mail.SmtpClient loSmtp = new System.Net.Mail.SmtpClient(MAIL_SMTP);
    loSmtp.UseDefaultCredentials = false;
    loSmtp.Credentials = loCredencial;
    loSmtp.Port = MAIL_PORT;
    loSmtp.Send(loMail);
}

0

这是用于发送带有附件的电子邮件的代码

using System.Net;
using System.Net.Mail;

public void email_send()
{
    MailMessage mail = new MailMessage();
    SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
    mail.From = new MailAddress("your mail@gmail.com");
    mail.To.Add("to_mail@gmail.com");
    mail.Subject = "Test Mail - 1";
    mail.Body = "mail with attachment";

    System.Net.Mail.Attachment attachment;
    attachment = new System.Net.Mail.Attachment("c:/textfile.txt");
    mail.Attachments.Add(attachment);

    SmtpServer.Port = 587;
    SmtpServer.Credentials = new System.Net.NetworkCredential("your mail@gmail.com", "your password");
    SmtpServer.EnableSsl = true;

    SmtpServer.Send(mail);
}

0
请使用这个。
  private static void SendMail(string subject, string content)
    {
        try

        {
            MailMessage mail = new MailMessage();
            SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
            mail.From = new MailAddress("YOURMAİL");
            mail.To.Add("MAİLTO");
            mail.Subject = subject;
            mail.Body = content;
            SmtpServer.Port = 25;
            SmtpServer.Credentials = new System.Net.NetworkCredential("YOURMAİL", "YOURMAİLPASSWORD");
            SmtpServer.EnableSsl = true;
            SmtpServer.Send(mail);
        }
        catch (Exception ex)
        {

        }
    }

不要忘记添加 ---using System.Net.Mail;---。

0
如果您正在使用ASP.Net MVC,我建议您查看MvcMailer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接