본문 바로가기

DEV/C#

크롤링으로 나라장터 검색-메일 전송 방식 변경

반응형

 GMail 정책 변경에 따른 

기존에 작성한 프로그램에는 지메일을 사용하여 아래의 정책변경으로 인해 메일이 발송되지 않았습니다.

보안 수준이 낮은 앱 및 Google 계정



계정을 안전하게 보호하기 위해 2022년 5월 30일부터 ​​Google은 사용자 이름과 비밀번호만 사용하여 Google 계정에 로그인하도록 요청하는 서드 파티 앱 또는 기기의 사용을 더 이상 지원하지 않습니다.



Google Workspace 또는 Google Cloud ID 고객에게는 이 기한이 적용되지 않습니다. 이러한 고객을 대상으로 한 시행일은 추후 Workspace 블로그에 공지될 예정입니다.



자세한 내용은 아래를 참고하시기 바랍니다.



Apple 기기 로그인에 관한 특별 참고사항 최근에 사용자 이름과 비밀번호만 사용하여 Google 계정에 로그인한 적이 없는 사용자는 2022년 2월 28일부터 Google 계정 정보로는 새로운 로그인만 시도할 수 있습니다. 기존 사용자는 2022년 5월 30일까지 사용자 이름과 비밀번호를 사용하여 Google 계정에 로그인할 수 있습니다.



https://support.google.com/accounts/answer/6010255?hl=ko



기존 코드

//G Mail
SmtpClient smtp = null;
MailMessage message = null;

try
{
    smtp = new SmtpClient
    {
        Host = "smtp.gmail.com",
        EnableSsl = true,
        DeliveryMethod = SmtpDeliveryMethod.Network,
        UseDefaultCredentials = false,
        Credentials = new NetworkCredential(sendAddress.Address, sendPassword),
        Timeout = 20000
    };
    message = new MailMessage(sendAddress, toAddress)
    {
        Subject = subject,
        Body = body
    };


    smtp.Send(message);
}



 수정

네이버 메일을 통해 발송하도록 수정하였습니다.

MailMessage message = new System.Net.Mail.MailMessage();
message.From = new System.Net.Mail.MailAddress(sendAddress.Address); //ex : ooo@naver.com
message.To.Add(toAddress); //ex : ooo@gmail.com
message.Subject = subject;
message.SubjectEncoding = System.Text.Encoding.UTF8;
message.Body = body;
message.BodyEncoding = System.Text.Encoding.UTF8;

try
{
    System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("smtp.naver.com", 587);
    smtp.UseDefaultCredentials = false; // 시스템에 설정된 인증 정보를 사용하지 않는다.
    smtp.EnableSsl = true;  // SSL을 사용한다.
    smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; // 이걸 하지 않으면 naver 에 인증을 받지 못한다.
    smtp.Credentials = new System.Net.NetworkCredential(sendAddress.Address, sendPassword);
    smtp.Send(message);

    textBoxLog.Text += "subject :: " + subject;
    textBoxLog.Text += "body :: " + body;
}
catch (Exception ex)
{
    textBoxLog.Text += ex.ToString();
    WriteLog(ex.ToString());
}
finally
{
    if (message != null) { message.Dispose(); }
}


 실행 파일

getAnncm_run.zip
17.50MB



 소스 코드

GetAnncm.zip
18.06MB


블로그 업로드 용량 제한으로 소스 코드에 패키지 파일이 빠져있습니다.
이전글을 참고하여 "크롬드라이버업데이트, Selenium, SQLite 등" 관련 페지키를 설치하여 사용하시기 바랍니다.



 

반응형
댓글