这个 gmail smtp 代码有啥问题?

Posted

技术标签:

【中文标题】这个 gmail smtp 代码有啥问题?【英文标题】: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)
        

        
    

                   

有什么想法吗?

【问题讨论】:

【参考方案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) 你会看到“不寻常的活动”,它会显示所有不寻常的活动事件,选择相关的事件并通过点击“是的,那是我!”批准它

【讨论】:

你对我的回答满意吗??

以上是关于这个 gmail smtp 代码有啥问题?的主要内容,如果未能解决你的问题,请参考以下文章

发送 smtp gmail 电子邮件“发送邮件失败”

通过 Gmail SMTP 发送电子邮件时出错

错误 SMTP 无法从 gmail 发送电子邮件

通过 Gmail smtp 服务器使用 Zend_Mail 发送邮件

使用代码点火器和 gmail smtp 从本地主机上的 xampp 发送电子邮件

Python 新手,GMail SMTP 错误