iT邦幫忙

0

winform 寄信程式(gmail)

大家好:

gmail(587 port)是否能大量寄信..因為我用寄信視窗程式(winform)C#迴圈寄,用gmail當smtp server,程式會卡死,所以又修正非同步(asnyc await),雖然會有點慢,但至少程式不會卡死

但是執行一陣子程式會回覆以下資訊造成中斷,想請問有甚麼方法改善
ServiceNotAvailable 421
SMTP 服務目前無法使用;伺服器正在關閉傳送通道。

https://ithelp.ithome.com.tw/upload/images/20211102/2009705790MwdzWEP5.jpg

用自家公司信箱 25 port算順利 Q_Q

好像587 port用迴圈gmail跟yahoo真的不行大量寄Orz

private async void button1_Click(object sender, EventArgs e)
        {
            try
            {
                SmtpServer = new SmtpClient("smtp.gmail.com");
                SmtpServer.DeliveryMethod = SmtpDeliveryMethod.Network; 
                login = new NetworkCredential("sample@gmail.com", "srcbn"); 
                SmtpServer.Credentials = login; 
                SmtpServer.EnableSsl = true;
                SmtpServer.Port = 587;
                Mymail = new MailMessage();
                Mymail.SubjectEncoding = System.Text.Encoding.UTF8;
                string senderNameb64Enc = Convert.ToBase64String(Encoding.UTF8.GetBytes("aaavvvv"));
                Mymail.From = new MailAddress("sample@gmail.com", $"=?UTF-8?B?{senderNameb64Enc}?=", System.Text.Encoding.GetEncoding("UTF-8")); 
               
                Mymail.IsBodyHtml = true; //是否用html格式
                Mymail.BodyEncoding = System.Text.Encoding.UTF8; 

                string[] formdata = { "sample@yahoo.com" };
                for (int i = 0; i < 500; i++)
                {
                    Mymail.Subject = "aaaqq"+i.ToString();

                    foreach (string email in formdata)
                    {
                        Mymail.To.Add(email);
                        await SmtpServer.SendMailAsync(Mymail);
                        // SmtpServer.Send(Mymail);
                    }
                }
                MessageBox.Show("OK");
            }
            catch (SmtpException ex)
            {
                MessageBox.Show(ex.StatusCode.ToString());

            }
        }
看更多先前的討論...收起先前的討論...
黃彥儒 iT邦高手 1 級 ‧ 2021-11-02 19:11:56 檢舉
gmail(587 port)是否能大量寄信:不能,結案
froce iT邦大師 1 級 ‧ 2021-11-03 09:05:38 檢舉
當然不能啊,要不然ISP早就把GMAIL封鎖了。
mayyola iT邦研究生 4 級 ‧ 2021-11-03 12:36:39 檢舉
那如果公司未來只有G Suite服務email提供給內部人員 又要大量發信 要怎麼辦呢? 謝謝
player iT邦大師 1 級 ‧ 2021-11-03 16:53:04 檢舉
大量寄信需自備SMTP Server
並設定好相關的DNS正反查設定
不然幾乎都會被當成垃圾信直接擋掉

尚未有邦友回答

立即登入回答