2017-05-23 30 views
1

このコードはgmailの個人アカウントでうまくいきますが、Gmailのビジネスアカウントを使用しようとすると機能しなくなり、エラーが発生します。 5.5.1認証が必要です。SMTPはGmailのビジネスアカウントで電子メールを送信しません

void SendEmail() 
{ 
    DataTable data = GetData(); 
    DataTable email_data = GetEmailData(); 
    data.TableName = "Employee_Data"; 

    using (XLWorkbook wb = new XLWorkbook()) 
    { 
     wb.Worksheets.Add(data); 

     using (MemoryStream memoryStream = new MemoryStream()) 
     { 
      wb.SaveAs(memoryStream); 
      byte[] bytes = memoryStream.ToArray(); 
      memoryStream.Close(); 
      String from = "[email protected]"; 

      for (int i = 0; i < email_data.Rows.Count; i++) 
      { 
       String to = email_data.Rows[i][0].ToString(); 

       using (MailMessage mm = new MailMessage(from, to)) 
       { 
        mm.Subject = "Employees Attachment"; 
        mm.Body = "Employees Exported Attachment"; 

        mm.Attachments.Add(new Attachment(new MemoryStream(bytes), "Employees.xlsx")); 
        mm.IsBodyHtml = true; 
        SmtpClient smtp = new SmtpClient(); 
        smtp.Host = "smtp.gmail.com"; 
        smtp.EnableSsl = true; 
        System.Net.NetworkCredential credentials = new System.Net.NetworkCredential(); 
        credentials.UserName = "[email protected]"; 
        credentials.Password = "1234"; 
        smtp.UseDefaultCredentials = true; 
        smtp.Credentials = credentials; 
        smtp.Port = 587; 
        smtp.Send(mm); 
       } 
      } 
     } 
    } 
} 
+0

mm.Header = "From:<[email protected]>" – Niko

+0

を追加してみてください。あなたのsmtp.Hostがsmpt.gmail.comであることがわかりません。smtp.abcd.net – Niko

+0

あなたのGoogleアカウントをより低い特権に –

答えて

0

私はこの問題を解決しました。 SMTPを使用する場合は、アカウントでGmailで2番目の確認を使用しないでください。

https://support.google.com/accounts/answer/1064203?hl=en&ref_topic=7189195

私はそれらのものを制御することはできません、私は、管理者が第二の検証を使用しないようにできるようにお願いします。 私はSMTPを使用してそのアカウントで作業できます。

関連する問題