发送电子邮件的问题

本文关键字:问题 电子邮件 | 更新日期: 2023-09-27 18:02:18

我正在用c#工作,我正试图从网页发送电子邮件。我试图填充从电子邮件地址从一个文本框和电子邮件地址正在硬编码。我的代码如下,我得到的错误是在代码之后。

try
    {
        MailMessage oMsg = new MailMessage();
        // TODO: Replace with sender e-mail address. Get from textbox: string SenderEmail = emailbox.text
        oMsg.From = emailbox.Text; //Senders email
        // TODO: Replace with recipient e-mail address.
        oMsg.To = "DummyRecipient@gmail.com"; //Recipient email
        oMsg.Subject = subjecttbox.Text; //Subject of email
        // SEND IN HTML FORMAT (comment this line to send plain text).
        //oMsg.BodyFormat = MailFormat.Html;
        // HTML Body (remove HTML tags for plain text).
        oMsg.Body = EmailBody; //Body of the email
        // ADD AN ATTACHMENT.
        // TODO: Replace with path to attachment.
        //String sFile = @"C:'temp'Hello.txt";  
        //MailAttachment oAttch = new MailAttachment(sFile, MailEncoding.Base64);
        //oMsg.Attachments.Add(oAttch);
        // TODO: Replace with the name of your remote SMTP server.
        SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
        //SmtpMail.SmtpServer = "Smtp.gmail.com"; //Email server name, Gmail = Smtp.gmail.com
        SmtpServer.Port = 587;
        SmtpServer.Credentials = new System.Net.NetworkCredential("DummySenderAddress@gmail.com", "DummyPassword");
        SmtpServer.EnableSsl = true;
        SmtpMail.Send(oMsg);
        oMsg = null;
        //oAttch = null;
    }
    catch //(Exception e)
    {
        Console.WriteLine("{0} Exception caught.", e);
    }

不能隐式地将类型'string'转换为"System.Net.Mail。MailAddress属性或索引器"System.Net.Mail.MailMessage。To'不能被分配给——它是读的只有

不能隐式地将类型'string'转换为"System.Net.Mail。MailAddressCollection'名称'SmtpMail'没有存在于当前上下文中

发送电子邮件的问题

问题出在你这一行:

oMsg.To = "DummyRecipient@gmail.com"; //Recipient email

电子邮件可以有多个收件人。因此,MailMessage类的"To"属性是一个集合。没有一个电子邮件地址。

另外,您需要创建一个MailAddress对象,而不是仅仅为电子邮件使用字符串。

用下面一行代替上面一行。

oMsg.To.Add(new MailAddress("DummyRecipient@gmail.com")); //Recipient email

From接受一个MailAddress对象作为其输入,而不是一个字符串。将其替换为:

oMsg.From = new MailAddress(emailbox.Text);

oMsg。将MailAddressCollection作为其输入。假设该集合不为空,您应该能够将其替换为:

oMsg.To.Add("DummyRecipient@gmail.com");