使用MailMessage在C#中发送电子邮件 [英] Using MailMessage to send emails in C#

查看:138
本文介绍了使用MailMessage在C#中发送电子邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在使用MailMessage发送电子邮件时遇到了一些问题.我有两个电子邮件帐户(account1@gmail.com和account2@gmail.com),并且我希望account2在按钮单击事件中向一个帐户发送一封电子邮件.

I am experiencing some problems sending emails with MailMessage. I have two email accounts, (account1@gmail.com, and account2@gmail.com) and I would like account2 to send an email to account one at a button click event.

这是我所拥有的,但不起作用.我越来越奇怪,说这是禁止的.

This is what I have but it's not working. I'm getting and exception saying it's forbidden.

            try
            {
                //do submit
                MailMessage emailMessage = new MailMessage();
                emailMessage.From = new MailAddress("account2@gmail.com", "Account2");
                emailMessage.To.Add(new MailAddress("account1@gmail.com", "Account1"));
                emailMessage.Subject = "SUBJECT";
                emailMessage.Body = "BODY";
                emailMessage.Priority = MailPriority.Normal;
                SmtpClient MailClient = new SmtpClient("smtp.gmail.com");
                MailClient.Credentials = new System.Net.NetworkCredential("account2@gmail.com", "password");
                MailClient.Send(emailMessage);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

我觉得这是Smtp的问题,但我没有头绪.

I have a feeling it's a problem with the Smtp but I have no clue.

推荐答案

尝试一下:

using (MailMessage emailMessage = new MailMessage())
{
    emailMessage.From = new MailAddress("account2@gmail.com", "Account2");
    emailMessage.To.Add(new MailAddress("account1@gmail.com", "Account1"));
    emailMessage.Subject = "SUBJECT";
    emailMessage.Body = "BODY";
    emailMessage.Priority = MailPriority.Normal;
    using (SmtpClient MailClient = new SmtpClient("smtp.gmail.com", 587))
    {
        MailClient.EnableSsl = true;
        MailClient.Credentials = new System.Net.NetworkCredential("account2@gmail.com", "password");
        MailClient.Send(emailMessage);
    }                               
} 

我将端口添加到了smtp客户端并启用了SSL. 如果端口587不起作用,请尝试端口465.

I added the port to the smtp client and enabled SSL. If port 587 doesn't work, try port 465.

这篇关于使用MailMessage在C#中发送电子邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆