¿Cómo envío un correo electrónico a Outlook 2010 en C#?

¿Es posible enviar correos electrónicos con Outlook a pesar de que mi servidor no instala Outlook 2010 y está dentro de la zona de intranet? Porque aquí todos se comunican con Outlook y tienen una cuenta de Outlook única. ¿Cómo puedo enviar un correo electrónico desde mi aplicación? Estoy bastante seguro de que no puedo usar el siguiente código para resolver mi problema, que alguien me ayude.

código:

// Create the Outlook application.
Outlook.Application oApp = new Outlook.Application();
// Create a new mail item.
Outlook.MailItem oMsg = (Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
// Set HTMLBody. 
//add the body of the email
oMsg.HTMLBody = body;
//Add an attachment.
//String sDisplayName = "MyAttachment";
///int iPosition = (int)oMsg.Body.Length + 1;
//int iAttachType = (int)Outlook.OlAttachmentType.olByValue;
//now attached the file
//Outlook.Attachment oAttach = oMsg.Attachments.Add(@"C:\\fileName.jpg", iAttachType, iPosition, sDisplayName);

//Subject line
oMsg.Subject = subject;
// Add a recipient.
Outlook.Recipients oRecips = (Outlook.Recipients)oMsg.Recipients;
// Change the recipient in the next line if necessary.
Outlook.Recipient oRecip = (Outlook.Recipient)oRecips.Add(address);
oRecip.Resolve();
// Send.
oMsg.Send();
// Clean up.
oRecip = null;
oRecips = null;
oMsg = null;
oApp = null;

preguntado el 03 de mayo de 12 a las 09:05

¿Te ayudó alguna respuesta? Por favor marque como respuesta. -

3 Respuestas

Este es un fragmento de ejemplo que utilicé en un proyecto mío:

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

private void SendMail( string targetMail, 
                       string shownTargetName, 
                       string[] attachmentNames) {
  var fromAddress = new MailAddress("support@infinibrain.net", "MailSendingProgram");
  var toAddress = new MailAddress(targetMail, shownTargetName);
  const string fromPassword = "12345isAbadPassword";
  subject = "Your Subject";
  body = 
        @"
          Here
          you can put in any text
          that will appear in the body
        ";
  var smtp = new SmtpClient {
    Host = "smtp.mailserver.com",
    Port = 587,
    EnableSsl = true,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = false,
    Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
  };

  using (var message = new MailMessage(fromAddress, toAddress) {
                             Subject = subject,
                             Body = body }
        ) {
    foreach(string filePath in attachmentNames[]) {
      Attachment attachMail = new Attachment(filePath);
      message.Attachments.Add(attachMail);
    }

    try {
      smtp.Send(message);
      MessageBox.Show("E-Mail sent!");
    } catch {
      MessageBox.Show("Sending failed, check your internet connection!");
    }
  }
}

En este ejemplo, incluí todo lo necesario para usar archivos adjuntos.

respondido 13 nov., 15:05

Si desea enviar un correo electrónico, no necesita Outlook, necesita una dirección de correo electrónico, por ejemplo

MailMessage mail = new MailMessage();
mail.From = ""; // put the from address here
mail.To = ""; // put to address here
mail.Subject = ""; // put subject here
mail.Body = ""; // put body of email here
SmtpMail.SmtpServer = ""; // put smtp server you will use here
// and then send the mail
SmtpMail.Send(mail);

y lee esto Enviar email

EDITAR

Pero si quieres usar OUTLOOK prueba esto

using Outlook = Microsoft.Office.Interop.Outlook;

Outlook.Application oApp = new Outlook.Application();

                    Outlook.MailItem email = (Outlook.MailItem)(oApp.CreateItem(Outlook.OlItemType.olMailItem));
                    email.Recipients.Add("EmailAddress@google.com");
                    email.Subject = "Subject";
                    email.Body = "Message";


                    ((Outlook.MailItem)email).Send();

EDIT2

Ejemplo de primer código

System.Net.Mail.MailMessage mm = new System.Net.Mail.MailMessage();
mm.From = new System.Net.Mail.MailAddress("mymail@gmail.com");//who send
mm.To.Add(new System.Net.Mail.MailAddress("Yourmail@gmail.com"));//where send
mm.Subject = "Subj";
mm.Body = "text";
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("127.0.0.1");
client.Send(mm);

contestado el 03 de mayo de 12 a las 11:05

Tengo una excepción COM... ¿Significa que cualquier dirección funcionará en su código? - usuario1037134

ambos, pero primero me da un error de conexión, dice que no se pudo conectar al servidor... - usuario1037134

@HuatsinYeo Debe leer esto para usar la parte de edición c-sharpcorner.com/UploadFile/casperboekhoudt/… - Likurg

@HuatsinYeo y necesito ver una excepción, para obtener ayuda: Likurg

en asp.net también puede enviar correos electrónicos a través de la perspectiva del usuario usando el administrador de secuencias de comandos:

//add this to your page body (or in master page body)
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"/>

//add this to your SendEmailButton_Click() event
string email = "mailto:recipient@domain.com?subject=my subject&body=my message.";
StringBuilder sb = new StringBuilder();
sb.Append("document.location.href='" + email + "';");
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "sendemail", sb.ToString(), true);

Respondido el 20 de diciembre de 12 a las 23:12

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.