내 웹 사이트에서 보내는 모든 전자 메일에 대해 전자 메일도 보내 게됩니다. 이메일의 약 5 % (하루 수천)가 두 번 보내지는 것으로 나타났습니다. 그러나 전송되는 복제물 사이의 시간은 완전히 일치하지 않습니다 ... 1 주일, 1 개월 또는 1 분일 수 있습니다. 완전히 일치하지 않습니다 ... 문제를 디버깅하려했지만 문제를 복제 할 수 없습니다. 언제나 하나의 전자 메일 만 보내고 제대로 작동합니다. 나는 아이디어가 없어 커뮤니티에서 어떤 입력 양식을 얻고 자 노력하기로 결정했습니다. 모든 통찰력이 크게웹 서버가 중복 전자 메일을 보내고 있습니다
그리고 함수를 호출하는 ASCX 페이지 (...
public static void SendEmail(string subject, string body, string toAddress, string fromAddress)
{
MailMessage msg = new MailMessage();
msg.From = new MailAddress(fromAddress);
msg.To.Add(new MailAddress(toAddress));
msg.Subject = subject;
msg.Body = body;
msg.IsBodyHtml = false;
using (SmtpClient cli = new SmtpClient())
{
cli.Send(msg);
cli.Dispose();
}
}
폐기()가 바로 문제를 해결하지 못한 내 최근의 시도 중 하나였다 ... 주시면 감사하겠습니다 .이 전자 메일 주소가 null가 아닌 경우가 myslef에 처음와 고객 두 번째 시간을 보내 두 번 호출 있습니다 내가 테스트 중에 이런 짓을 거기에두고하기로 결정
Txp.SendEmail(strOrderConfirmationHeader, strOrderConfirmationText, TxpConst.ORDERNOTIFYADDR, TxpConst.RETURNADDR);
if (!String.IsNullOrWhiteSpace(custemail))
{
Txp.SendEmail(strOrderConfirmationHeader, strOrderConfirmationText, custemail, TxpConst.RETURNADDR);
}
그렇게 일관성이 없다는 사실은 아마 코드가 아니며, 전자 메일 서버가 아니기 때문에 메일 로그에 매번 완료된 트랜잭션이 표시되고 매번 다른 메시지 ID가 표시됩니다 ... 나는 모두 아이디어가 없습니다!
두 사람에게 보내려는 경우, 두 번 호출하는 대신 실제'MailMessage'의'To' 컬렉션에 두 사람을 추가하십시오. 이것 만이'SendMail' 메소드에 대한 유일한 진입 점입니까? – Arran
아니면 원래 수신자가 보조 이메일 주소를 보지 못하도록하려면 숨은 참조로 보내주십시오. –
전자 메일 코드를 보내면 전자 메일 하나만 보내집니다. 이러한 종류의 것을 디버깅하려면 일종의 로깅을 추가해야합니다. 그래서이 전자 메일의 출처를 추적 할 수 있습니다. –