-
System.Web.Mail 사용;
개인 무효 Button1_Click(개체 전송자, System.EventArgs e)
{
//MailMessage 객체 인스턴스화
System.Web.Mail.MailMessage 메일=새 System.Web.Mail.MailMessage();
//이메일 발송 주소를 정의합니다. 존재하지 않는 주소를 마음대로 입력할 수 있습니다. ^_^
mail.From=" [email protected] ";
//이메일 수신 주소 정의
//수신자 이메일 주소의 세미콜론으로 구분된 목록을 설정합니다.
mail.To=" [email protected] ";
//이메일의 BCC 주소를 정의합니다.
//세미콜론으로 구분된 이메일 주소 목록 설정
//mail.Bcc=" [email protected] ";
//이메일의 카본 카피 주소를 정의합니다.
//세미콜론으로 구분된 이메일 주소 목록 설정
//mail.Cc=" [email protected];[email protected]
//이메일 제목 정의
mail.Subject="widebright 메일 테스트 asp.net 메일 보내기 학습";
//이메일 본문의 콘텐츠 유형을 설정합니다.
//여기에서는 HTML 형식으로 보냅니다.
mail.BodyFormat=System.Web.Mail.MailFormat.Html;
//이메일 본문 설정
mail.Body="테스트하고 작동하는지 확인하세요";
//@로 묶인 문자열은 @로 시작하고 큰따옴표로 묶입니다. 예를 들어:
//@ 인용의 장점은 이스케이프 시퀀스가 처리되지 않으므로 정규화된 파일 이름과 같은 문자열을 쉽게 작성할 수 있다는 것입니다.
//@"c:DocsSourcea.txt " // "c:\Docs\Source\a.txt" 대신
//@-따옴표로 묶인 문자열 내에 큰따옴표를 포함하려면 두 쌍의 큰따옴표를 사용합니다.
// @"""어이!"" 선장이 외쳤습니다." // "어이!" 선장이 외쳤습니다.
// @ 기호의 또 다른 용도는 C# 키워드인 참조(/참조) 식별자와 함께 사용하는 것입니다.
// http://msdn2.microsoft.com/zh-CN/library/362314fe(VS.80).aspx
//첨부파일 설정
System.Web.Mail.MailAttachment mailAttachment=new System.Web.Mail.MailAttachment(@" F:dddddd.txt");
//이메일에 첨부파일을 첨부합니다.
mail.Attachments.Add(mailAttachment);
//여기에 계속해서 여러 개의 첨부 파일을 추가합니다.
mailAttachment=new System.Web.Mail.MailAttachment(@"F:asp_net 메일 코드 보내기_Baidu Know.mht");
mail.Attachments.Add(mailAttachment);
//SMTP 서버는 이 머신에 설정되어 있으므로 127.0.0.1을 입력하세요. 163 메일박스 등 다른 서버에 연결되어 있는 경우 smpt.163.com을 입력하세요.
System.Web.Mail.SmtpMail.SmtpServer="127.0.0.1";
//스팸을 방지하기 위해 많은 SMTP 서버가 인증을 요구한다고 합니다. 확장 smpt 프로토콜이라 불리는 것 같습니다.
//하지만 여기에 연결된 것은 자체 smpt 서버, 단순 smpt이므로 검증이 없습니다.
//로컬 SMPT 서버에서 163이나 다른 메일박스로 메일을 보낼 때 인증이 필요한지는 잘 모르겠습니다.
//@163.com , @eyou.com, @x.cn, 확인이 필요하지 않습니다.
//확인하다
//mail.Fields.Add(" http://schemas.microsoft.com/cdo/configuration/smtpauthenticate ", "1");
//로그인 이름
//mail.Fields.Add(" http://schemas.microsoft.com/cdo/configuration/sendusername ", "widebright");
//로그인 비밀번호
//mail.Fields.Add(" http://schemas.microsoft.com/cdo/configuration/sendpassword ", "widebright");
//보내다
System.Web.Mail.SmtpMail.Send(메일);
}
위 코드는 .Net에서 제공하는 System.Web.Mail.SmtpMail 클래스를 사용하여 이메일을 보내고 자동으로 연결합니다.
이메일을 보내는 SMPT 서버입니다. 어떤 사람들은 TCP 클래스나 소켓을 사용하여 smpt 프로토콜을 구현하는 코드를 작성하지만, 여기에는 많은 코딩, 프로토콜 등이 필요하므로 상당히 번거롭습니다. VB를 사용하기 전에 한 번 해본 적이 있습니다. smpt 프로토콜은 비교적 간단하지만 해당 첨부 파일을 인코딩하려면 많은 코드가 필요합니다.
이것은 단지 SMTP 메시지를 보내기 위한 코드일 뿐입니다. 메시지를 받고 기다리려면 pop3 프로토콜을 지원하는 pop3 서버가 있어야 합니다.
smtp 서버는 IIS를 설치한 후에 이미 설치되어 있습니다. Pop3는 포함되어 있지 않기 때문에 설치가 조금 더 번거로울 수 있습니다. 아직 시도하지 않았습니다!
SMTP 서버 구성
IIS 5.1을 설치한 후 직접 활성화했습니다. 방금 IIS 정보 서비스 관리자에서 구성했습니다.
1. 도메인에 여러 도메인 이름 추가: "기본 SMTP 가상 서버"에서 도메인을 마우스 오른쪽 버튼으로 클릭합니다.
새 도메인을 만들려면 "새로 만들기"를 선택하고 ---> 도메인 유형을 선택한 다음 "원격"을 선택하세요.
도메인 이름은 각각 163.com eyou.com x.cn으로 채워져 있습니다. 왜냐하면 이 서버로 이메일을 보내고 싶기 때문이며 위 코드와 동일합니다.
================
mail.To=" [email protected] ";
================
따라서 이메일을 보내려는 사람에게 해당 도메인 이름을 설정해야 합니다. 설정하지 않으면 이메일을 보낼 수 없습니다.
2. 163.com과 같은 도메인 이름을 마우스 오른쪽 버튼으로 클릭하고 "속성"을 선택한 다음 "수신 메일이 이 도메인으로 릴레이되도록 허용"을 선택하십시오. 확인 후에만 이메일을 보낼 수 있습니다. 그렇지 않으면 계속 오류가 발생합니다. .
아래 라우팅 도메인의 경우 기본 DNS를 사용하여 도메인으로 라우팅을 선택하면 됩니다.
핵심은 IIS에서 해당 SMTP 서버 도메인 이름을 설정한 다음 이메일을 보낼 수 있다는 것입니다. asp.net 페이지에서 여러 사서함을 테스트했는데 정상적으로 보낼 수 있습니다. 163 메일박스처럼 보내기 버튼을 누르시면 받아보실 수 있습니다.
추가할 수 있다는 걸 방금 알아냈습니다
*.com
*.그물
*CN
대부분의 이메일 주소와 일치하는 도메인 이름입니다.
*.com 도메인 이름을 추가하면 @163.com, @eyou.com으로 편지를 보낼 수 있습니다.
테스트는 windows xp+visual sutdio 2003+iis5.1 환경에서 통과되었습니다.
그런데 시나우체통으로 보낸 편지가 도착하지 않은 것만 확인했는데, 이유는 모르겠습니다.
SMTP 일반 오류 550 5 7 1 중계할 수 없음 발생
도메인 외에도 도메인 이름이 제대로 설정되지 않은 경우가 있을 수 있습니다.
SMTP 가상 서버 설정에서 "성공적으로 인증한 컴퓨터의 릴레이 허용" 확인란이 선택되어 있지 않습니다. 아래와 같이,
먼저 SMTP 가상 서버 속성 페이지의 액세스 페이지를 엽니다.
그런 다음 "릴레이" 버튼을 클릭하고 "위 목록에 관계없이 성공적으로 인증한 모든 컴퓨터에 릴레이 허용"이 선택되어 있는지 확인합니다.