Gmail的:如何以编程方式发送电子邮件 [英] Gmail: How to send an email programmatically

查看:312
本文介绍了Gmail的:如何以编程方式发送电子邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

可能的精确副本:发送电子邮件在C#.NET通过Gmail

您好,

我想使用Gmail发送电子邮件:

我想,我发现这个网站和其他网站,但我总是得到同样的错误不同的例子:
无法连接到远程服务器 - > System.net.Sockets.SocketException:无连接可以作出,因为目标积极拒绝,209.85.147.109:587

 公共静态无效Attempt1()
    {
        VAR的客户=新SmtpClient(smtp.gmail.com,587)
        {
            证书=新的NetworkCredential(MyEmailAddress@gmail.com,MYPASSWORD),
            EnableSsl =真
        };
        client.Send(MyEmailAddress@gmail.com,some.email@some.com,测试,testbody);
    }
 

任何想法?

更新

更多细节。

也许我应该说我做了什么其他的尝试,给了我同样的错误: (注意:当我没有指定端口就tryed端口25)

 公共静态无效ATTEMPT2()
    {
        VAR fromAddress =新MailAddress(MyEmailAddy@gmail.com,从名称);
        VAR的toAddress =新MailAddress(MyEmailAddy@dfdf.com,来命名);
        常量字符串fromPassword =通行证;
        常量字符串主题=主题;
        常量字符串身体=身体;
        VAR SMTP =新SmtpClient
        {
            主机=smtp.gmail.com,
            端口= 587,
            EnableSsl = TRUE,
            DeliveryMethod = SmtpDeliveryMethod.Network,
            UseDefaultCredentials =假,
            证书=新的NetworkCredential(fromAddress.Address,fromPassword)
        };
        使用(VAR消息=新MailMessage(fromAddress,的toAddress)
        {
            主题=主题,
            身体=人体
        }
            ){smtp.Send(消息); }
    }


    公共静态无效Attempt3()
    {
        MailMessage电子邮件=新MailMessage();
        mail.To.Add(MyEmailAddy@dfdf.com);
        mail.From =新MailAddress(MyEmailAddy@gmail.com);
        mail.Subject =通过电子邮件使用Gmail;

        字符串身体=你好,此邮件是测试发送邮件+
                      使用Gmail在ASP.NET中;
        mail.Body =身体;

        mail.IsBodyHtml = TRUE;
        SmtpClient SMTP =新SmtpClient();
        smtp.Host =smtp.gmail.com;
        smtp.Credentials =新System.Net.NetworkCredential
             (MyEmailAddy@gmail.com,通行证);
        smtp.EnableSsl = TRUE;
        smtp.Send(邮件);
    }
 

解决方案

我用下面的code:

  SmtpClient SC =新SmtpClient(smtp.gmail.com);
的NetworkCredential NC =新的NetworkCredential(用户名,密码); //用户名不包括@ gmail.com
sc.UseDefaultCredentials = FALSE;
sc.Credentials = NC;
sc.EnableSsl = TRUE;
sc.Port = 587;
尝试 {
    sc.Send(毫米);
}赶上(例外前){
    EventLog.WriteEntry(发送错误,EventLogEntryType.Error);
}
 

Possible Exact Duplicate: Sending Email in C#.NET Through Gmail

Hi,

I'm trying to send an email using gmail:

I tried various examples that I found on this site and other sites but I always get the same error:
Unable to connect to the remote server -- > System.net.Sockets.SocketException: No connection could be made because the target actively refused it 209.85.147.109:587

    public static void Attempt1()
    {
        var client = new SmtpClient("smtp.gmail.com", 587)
        {
            Credentials = new NetworkCredential("MyEmailAddress@gmail.com", "MyPassWord"),
            EnableSsl = true
        };
        client.Send("MyEmailAddress@gmail.com", "some.email@some.com", "test", "testbody"); 
    }

Any ideas?

UPDATE

More details.

Maybe I should say what other attempts I made that gave me the same error: (Note when i didn't specify a port it tryed port 25)

    public static void Attempt2()
    {
        var fromAddress = new MailAddress("MyEmailAddy@gmail.com", "From Name");
        var toAddress = new MailAddress("MyEmailAddy@dfdf.com", "To Name");
        const string fromPassword = "pass";
        const string subject = "Subject";
        const string body = "Body";
        var smtp = new SmtpClient
        {
            Host = "smtp.gmail.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
        }
            ) { smtp.Send(message); }
    }


    public static void Attempt3()
    {
        MailMessage mail = new MailMessage();
        mail.To.Add("MyEmailAddy@dfdf.com");
        mail.From = new MailAddress("MyEmailAddy@gmail.com");
        mail.Subject = "Email using Gmail";

        string Body = "Hi, this mail is to test sending mail" +
                      "using Gmail in ASP.NET";
        mail.Body = Body;

        mail.IsBodyHtml = true;
        SmtpClient smtp = new SmtpClient();
        smtp.Host = "smtp.gmail.com";
        smtp.Credentials = new System.Net.NetworkCredential
             ("MyEmailAddy@gmail.com", "pass");
        smtp.EnableSsl = true;
        smtp.Send(mail);
    }

解决方案

I'm using the following code:

SmtpClient sc = new SmtpClient("smtp.gmail.com");
NetworkCredential nc = new NetworkCredential("username", "password");//username doesn't include @gmail.com
sc.UseDefaultCredentials = false;
sc.Credentials = nc;
sc.EnableSsl = true;
sc.Port = 587;
try {
    sc.Send(mm);
} catch (Exception ex) {
    EventLog.WriteEntry("Error Sending", EventLogEntryType.Error);
}

这篇关于Gmail的:如何以编程方式发送电子邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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