这个gmail smtp代码出了什么问题?

时间:2014-09-07 02:02:19

标签: c# .net email smtp smtpclient

我似乎无法让这个工作。我正在尝试从桌面应用程序发送电子邮件,但我不断收到错误

  

System.dll中发生未处理的“System.Net.Mail.SmtpException”类型异常

     

其他信息:SMTP服务器需要安全连接,或者客户端未经过身份验证。服务器响应为:5.7.0必须首先发出STARTTLS命令。 l9sm2010572yhb.26 - gsmtp“

当使用587作为端口时,我得到了这个

  

System.dll中出现'System.Net.Mail.SmtpException'类型的第一次机会异常   System.dll中出现未处理的“System.Net.Mail.SmtpException”类型异常   附加信息:操作已超时。

使用465作为端口时。

这是代码。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net.Mail;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication15
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void genuineButton1_Click(object sender, EventArgs e)
        {
            Environment.Exit(0);
        }

        private void fusionButton1_Click(object sender, EventArgs e)
        {
            String Sender = textBox1.Text;
            String Pass = textBox2.Text;
            String Recepient = textBox3.Text;
            String Subject = textBox4.Text;
            String Body = richTextBox1.Text;
            MailMessage message = new MailMessage();
            message.From = new MailAddress(String.Copy(Sender));
            message.To.Add(new MailAddress(String.Copy(Recepient)));
            message.Subject = String.Copy(Subject);
            message.Body = String.Copy(Body);

            SmtpClient client = new SmtpClient("smtp.gmail.com");
            client.Port = 465;
            client.Send(message);
            System.Net.NetworkCredential netCre = new System.Net.NetworkCredential(String.Copy(Sender), String.Copy(Pass));
            client.UseDefaultCredentials = false;
            client.EnableSsl = true;
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }
    }
}

任何想法?

1 个答案:

答案 0 :(得分:1)

再添加两个库

使用system.Net; 使用system.Net.Mine;

如果您的SMTP脚本没有问题,但仍然收到上述消息,则应该是因为Gmail检测到您是第一次从我们的服务器登录您的Gmail帐户时阻止了我们服务器的身份验证另一个国家或地点。您需要登录gmail安全中心以批准身份验证。一旦您批准,

请等待几分钟,然后再从脚本发送电子邮件。以下是批准"异常活动提醒的步骤"来自gmail安全中心。

a)通过此链接打击或Google搜索" gmail security"进入gmail安全中心。并使用您的Gmail帐户https://accounts.google.com/ServiceLogin?elo=1

登录

b)"安全" /"最近的活动" ,单击以"查看所有事件"

c)您将能够看到"异常活动" ,它将显示所有不寻常的活动事件,选择相关事件并通过点击"是的,那是我!"

相关问题