Mama G Ответов: 0

Невозможно прочитать данные из транспортного соединения существующее соединение было принудительно закрыто удаленным хостом


Я разработал программу c# для отправки электронной почты вместе с вложением pdf-файла. когда я запускаю программу, она выдает ошибку "невозможно прочитать данные из транспортного соединения, существующее соединение было принудительно закрыто удаленным хостом". Я искал справку об этой ошибке в интернете, но не смог решить эту проблему. У меня также есть менее безопасный вариант учетной записи gmail. Пожалуйста, предложите любое средство.

Что я уже пробовал:

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

namespace MailMessaje
{
    public partial class Form1 : Form
    {
               
        public Form1()
        {
            InitializeComponent();
        }
        
        private void btnSend_Click(object sender, EventArgs e)
        {
            try
            {
                MailMessage mail = new MailMessage();
                SmtpClient client = new SmtpClient();
                mail.From = new MailAddress("<email>");
                mail.To.Add(this.txtToMailAddress.Text);
                mail.Subject = this.txtSubjectMail.Text;
                mail.Body = this.txtBodyMail.Text;
                System.Net.Mail.Attachment attachFile = new Attachment("D:\\exp1.pdf");
                mail.Attachments.Add(attachFile);

                client.Port = 587;
               
                client.Host = "smtp.gmail.com";
                client.DeliveryMethod = SmtpDeliveryMethod.Network;
                client.EnableSsl = true;
                client.Credentials = new System.Net.NetworkCredential("<email>", "<password>");
                System.Net.ServicePointManager.Expect100Continue = false;
                client.Send(mail);

                MessageBox.Show("Message Send Successfully");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.InnerException.Message);
            }
        }
}}

Afzaal Ahmad Zeeshan

Никогда не делитесь своей электронной почтой/паролем в интернете. Это небезопасное место для обмена такой информацией. Нам требуется только тот код, который вы используете, и мы можем опробовать его с помощью нашего собственного имени пользователя/пароля, если это необходимо для теста.

F-ES Sitecore

Этот вопрос задают почти каждый день. Google для того, чтобы узнать, как отправлять электронную почту через gmail, и вы найдете тысячи результатов, которые объяснят проблемы, с которыми вы можете столкнуться. В конечном счете, вы вообще не должны отправлять электронную почту через gmail, вы должны использовать smtp-сервер, поставляемый вашим веб-хостингом.

0 Ответов