【问题标题】:What's wrong with this gmail smtp code?这个 gmail smtp 代码有什么问题?
【发布时间】:2014-10-31 14:55:18
【问题描述】:

我似乎无法让它工作。我正在尝试制作一些东西来从桌面应用程序发送电子邮件,但我不断收到错误

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)
        {

        }
    }
}
                   

有什么想法吗?

【问题讨论】:

    标签: c# .net email smtp smtpclient


    【解决方案1】:

    再添加两个库

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

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

    请等待几分钟,然后再次从脚本发送电子邮件。以下是从 gmail 安全中心批准“异常活动警报”的步骤。

    a) 通过此链接访问 gmail 安全中心或 Google 搜索“gmail security”并使用您的 gmail 帐户https://accounts.google.com/ServiceLogin?elo=1登录

    b) 在“安全”/“近期活动”旁边,点击“查看所有事件”

    c) 你会看到“不寻常的活动”,它会显示所有不寻常的活动事件,选择相关的事件并通过点击“是的,那是我!”批准它

    【讨论】:

    • 你对我的回答满意吗??
    猜你喜欢
    • 2012-08-07
    • 2014-08-29
    • 2013-06-05
    • 2014-06-04
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多