홈>
메일러가 있는데 여기 코드가 있습니다 :
private static int i=0;
protected void btnSubmit_Click(object sender, EventArgs e)
{
++i; //i want to increment this variable
{
SendHTMLMail();
}
void SendHTMLMail()
{
StreamReader reader = new StreamReader(Server.MapPath("~/one.html"));
string readFile = reader.ReadToEnd();
string myString = "";
myString = readFile;
MailMessage Msg = new MailMessage();
Msg.From = new MailAddress(txtUsername.Text);
Msg.To.Add(txtTo.Text);
Msg.Subject = txtSubject.Text;
Msg.Body = myString.ToString();
Msg.IsBodyHtml = true;
if (fuAttachment.HasFile)
{
string FileName = Path.GetFileName(fuAttachment.PostedFile.FileName);
Msg.Attachments.Add(new Attachment(fuAttachment.PostedFile.InputStream, FileName));
}
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.Port = 587;
smtp.UseDefaultCredentials = false;
smtp.Credentials = new System.Net.NetworkCredential(txtUsername.Text, txtpwd.Text);
smtp.EnableSsl = true;
smtp.Send(Msg);
Msg = null;
ClientScript.RegisterStartupScript(GetType(), "alert", "alert('Email sent.');", true);
// Request both failure and success report
Msg.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure | DeliveryNotificationOptions.OnSuccess;
int emailsSent = 0;
try
{
Console.WriteLine("start to send email ...");
smtp.Send(Msg);
emailsSent++;
Console.WriteLine("email was sent successfully!");
}
catch (Exception ex)
{
Console.WriteLine("failed to send email with the following error:");
Console.WriteLine(ex.Message);
}
}
}
위의 코드에서 변수 'i'가 있으며 메일을 보낼 때마다 변수를 늘리고 싶습니다. 이제 내가 겪고있는 문제는 localhost의 aspx 페이지가 열릴 때 메일을 다시 보낼 때만 'i'가 증가한다는 것입니다. aspx 페이지를 닫 자마자 다시 열고 메일을 보내면 변수 'i'가 다시 1로 증가하고 4 또는 5는 말하지 않습니다.- 답변 # 1
- 답변 # 2
애플리케이션의 정적 클래스를 정의해야합니다. 개체와 함께 다시로드됩니다.)
메일을 보낼 때마다 증가 할 변수/속성을 사용하여 정적 클래스 (또는 생성자가 호출 된 비 정적 클래스)를 정의하십시오.
public static class Mail { private static int mailCount; public static void MailSent() { mailCount++; } public static int GetMailCount() { return mailCount; } }
이제 버튼 클릭으로 정적 메소드를 사용하여 mailCount-를 늘리고 검색하십시오.
protected void btnSubmit_Click(object sender, EventArgs e) { Mail.MailSent(); // increments every time you send mail // to check how many mails sent in debug console System.Diagnostics.Debug.WriteLine(Mail.GetMailCount()); //... YOU MAILING CODE }
관련 자료
- javascript - 드롭 다운은 내가 매핑 한 모든 항목에 열립니다 클릭 한 항목 만 열려면 어떻게해야합니까?
- bash - 변수 이름을 증가 시키면 명령을 찾을 수 없습니다
- python - 변수가 증가하지 않음
- javascript - Mocha에서 증분 변수로 테스트 이름을 만드는 방법
- javascript - 브라우저 확장 컨텍스트에서 TypeScript를 통해 전역 변수에 액세스하는 방법 (가능한 경우 부분적으로 입력)
- 파일에서 인쇄하는 동안 Python에서 변수 증가
- c++ - 변수에 추가 할 때 포인터 증가는 어떻게 작동합니까?
- javascript - 변수를 통한 재귀는 어떻게 증가 순서를 반환합니까?
- flutter : 500 마일리 초마다 자동 증분
- if statement - excel 공식 - 6 일마다 각 변수의 합계를 얻습니다
- arrays - PHP에서 변수 이름을 1 씩 증가시키는 방법
- JavaScript 증분 번호 (if 문)가 참일 때마다
- scripts - bash for 루프의 증가 변수
- shell script - 변수를 통한 루프 작동 중지
- bash - Gitlab API를 통해 프로젝트 변수 값에 액세스
- python - 목록을 반복하고 변수를 할당하는 방법이 있습니까?
- 다른 변수가 변경 될 때마다 클래스의 한 변수를 어떻게 변경할 수 있습니까? 파이썬
- javascript - 배열을 통해 변수에 포함 된 데이터를 계산하는 방법
- visual studio - 씨# - 전체 프로젝트를 통해 접근 가능한 변수 생성
- Vim 스크립트를 사용하여 변수를 복사하고 숫자를 증가시킵니다
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- JavaScript 변수를 HTML div에 '출력'하는 방법
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- python - 화면에서 찾은 요소를 찾을 수없는 경우 셀레늄
이 코드를 넣는 위치의 동작이 변경됩니다. ASPX 페이지에 있으면 런타임에서 해당 페이지를 다시 컴파일 할 때마다 정적 데이터가 손실됩니다. DLL 파일에 있으면 응용 프로그램/IIS 풀이 재활용 될 때마다 값을 잃게됩니다. 최종 값을 영구 저장소 (예 : 데이터베이스)에 저장해야합니다. 다음에 필요할 때 DB에서 검색하여 증가시킨 다음 다시 저장해야합니다. 웹 애플리케이션은 다중 스레드이며 정적 변수는 스레드 안전하지 않으므로주의하십시오. 두 개의 스레드가 동시에 동일한 변수를 수정하면 혼란에 빠질 것입니다. 다중 스레드 응용 프로그램에서 정적 변수에 액세스하려면 잠금 메커니즘을 사용하십시오.