Отправить EMail с Visual Studio 2008, используя C # - PullRequest
0 голосов
/ 31 августа 2010

Я использую Visual Studio 2008 Express с C #.Я пытался заставить программу электронной почты работать в коде на странице aspx.

Все примеры MSDN, даже те, которые заявлены для .Net 3.5, не компилируются.Класс MailMessage, видимо, менялся несколько раз.Вот код, который компилируется, но эта строка кода, SmtpMail.Send (msg), имеет неопределенное сообщение об ошибке:

«Наилучший перегруженный метод соответствует System.Net.Mail.SmtpClient.Отправить (System.Net.Mail.MailMessage) ' содержит недопустимые аргументы .

Кто-нибудь может увидеть, что недопустимые аргументы могут быть? Это все, что мешает этому работать.

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

MailMessage msg = new MailMessage();

msg.ToAddress = new MailAddress("someone@yourCompany.com");
msg.FromAddress = ("me@myCompany.com");
msg.CCAddress = ("boss@myCompany.com");

msg.EmailMessage = "Order message test";
msg.EmailSubject = "Order Confirmation";
msg.MailEncoding = "html";
msg.MailPriority = MailPriority.Normal.ToString();

SmtpClient SmtpMail = new SmtpClient();

SmtpMail.Host = "smtpout.secureserver.net";
SmtpMail.Port = 25;

try
{
    SmtpMail.Send(msg);    // This is where the error occurs.
}
catch (Exception ex)
{
    //  Incomplete here
}

Ответы [ 3 ]

2 голосов
/ 12 октября 2012

В приведенном ниже примере используется среда C # .net 3.0.

Вот дополнительные библиотеки, которые я использую:

        using System.Net.Mail;  //.MailMessage
        using Microsoft.VisualBasic; //imports control characters for string formatting

Вот моя функция для отправки по электронной почте:

        String strPassed = ""; 
        System.Web.Mail.MailMessage
        String strEmailTo = "touser@xyz.org";
        String strEmailFrom = "fromuser@xyz.org";
        String strEmailBCC = "";
        String strEmailSubject;
        String strEmailBody = "";

        strEmailSubject = "Attention User - Request Email";
        strEmailBody = "You requested your password for xyz site. <br><br>" +
            " <b> Account Information </b> ...<br> ";
        strEmailBody = strMessage;
        strEmailTo = strEmail;

        System.Net.Mail.MailMessage objMessage = new System.Net.Mail.MailMessage(strEmailFrom, strEmailTo);
        objMessage.IsBodyHtml = true;
        objMessage.Subject = strEmailSubject;
        objMessage.Body = strEmailBody;  //emailbody;

        MailAddressCollection objAddress = new MailAddressCollection();
        System.Net.Mail.SmtpClient objClientPath = new System.Net.Mail.SmtpClient();
        SmtpClient smtp = new SmtpClient();
        try
        {
            strPassed = "passed:emailed";
            objClientPath.Host = "mailhost.xyz.org";
            objClientPath.Send(objMessage); 
        }
        catch (System.Exception err)
        {
            strPassed = "failed:"+ err.ToString();//''if an error 
        }
        return strPassed;
0 голосов
/ 31 августа 2010

Похоже, вы пытаетесь сделать что-то довольно сложное;Сначала я бы попробовал еще более простой пример и продолжил свой путь.На сайте SystemNetMail.com есть много ресурсов, которые могут оказаться полезными.Это их простой пример :

//create the mail message
MailMessage mail = new MailMessage();

//set the addresses
mail.From = new MailAddress("me@mycompany.com");
mail.To.Add("you@yourcompany.com");

//set the content
mail.Subject = "This is an email";
mail.Body = "this is a sample body";

//send the message
SmtpClient smtp = new SmtpClient("127.0.0.1");
smtp.Send(mail);
0 голосов
/ 31 августа 2010

Похоже, вы используете пользовательскую оболочку для MailMessage.Ни одно из этих свойств не является членом классов .NET (для любой версии, которую я могу найти).

Для 3.5 вы должны использовать:

msg.To.Add(new MailAddress("someone@yourCompany.com"));
msg.From.Add(new MailAddress("me@myCompany.com"));
msg.CC.Add(new MailAddress("boss@myCompany.com"));

msg.Body = "Order message test";
msg.Subject = "Order Confirmation";
msg.BodyEncoding = Encoding.Default;
msg.Priority = MailPriority.Normal;
...