1. 제가 본 UFIDA 소프트웨어 U8 Manufacturing(데모 버전)과 같이 outLook에서 제공하는 전송 소프트웨어를 사용합니다. 여기서는 outLook의 ActiveX 구성 요소를 호출하여 이메일 기능을 전송합니다. 장점: 단점: 개발이 간단합니다.
Outlook 구성 요소, 이메일을 보내는
SMTP 메일 서비스
코드는 다음과 같습니다. Private Sub Send()
Dim outObj를 새 Outlook.Application()으로 사용
항목을 Outlook.MailItemClass로 어둡게 표시
항목 = outObj.CreateItem(0)
Item.To = "
[email protected] "
Item.Subject = "안녕하세요"
Item.Body = "지옥"
Item.Attachments.Add("C:abc.txt")
항목.보내기()
End Sub
2. WEB 개발, ASP.NET의 System.Web.Mail 참조 친절한
System.Web.Mail 네임스페이스에는 CDOSYS(Windows 2000용 Collaboration Data Objects) 메시지 구성 요소를 사용하여 메시지를 구성하고 보낼 수 있는 클래스가 포함되어 있습니다. 메일 메시지는 Microsoft Windows 2000에 내장된 SMTP 메일 서비스나 SMTP 서버를 통해 전달됩니다. 이 네임스페이스의 클래스는 ASP.NET 또는 관리되는 응용 프로그램에서 사용할 수 있습니다.
MailAttachment는 이메일 첨부 파일을 생성하기 위한 속성과 메서드를 제공합니다.
MailMessage는 이메일 메시지 구성을 위한 속성과 메서드를 제공합니다.
SmtpMail은 Windows 2000의 CDOSYS(Collaboration Data Objects) 메시지 구성 요소를 사용하여 메시지를 보내기 위한 속성과 메서드를 제공합니다.
메일은 Microsoft Windows 2000에 내장된 SMTP 메일 서비스나 SMTP 서버를 통해 배달될 수 있습니다. System.Web.Mail 네임스페이스의 형식은 ASP.NET 또는 모든 관리되는 응용 프로그램에서 사용할 수 있습니다.
Smtp 서버 설정 이제 일부 무료 이메일 제공업체는 더 이상 모든 이메일에 대해 Smtp 서비스를 제공하지 않습니다. 이메일을 보낼 때 Smtp 사용자 확인 문제를 고려하세요. 기본적으로 걱정하지 마십시오. 로컬 서버가 아닌 경우 전송 시 너무 많이 사용하지 않는 것이 가장 좋습니다. 하나는 속도 문제이고 다른 하나는 너무 많은 이메일을 보내는 것일 수 있습니다. 스팸이라고 생각하고 서비스 거부 코드는 다음과 같습니다.
Private Sub Button1_Click(ByVal 송신자는 System.Object로, ByVal e는 System.EventArgs로) Button1.Click을 처리합니다.
mailObj를 새 MailMessage()로 희미하게 표시
smtp를 smtpMail로 희미하게 표시
'SMTP 서버 이름을 정의합니다.
smtp.SmtpServer = "smtp.XXX.com"
'이메일 발송 주소를 정의하세요
mailObj.From = "
[email protected] "
'이메일 수신 주소를 정의하세요
mailObj.To = "
[email protected] "
'이메일의 숨은참조 주소를 정의하세요.
mailObj.Bcc= "
[email protected] "
'이메일의 카본 카피 주소를 정의하세요.
mailObj.Cc = "
[email protected] "
'이메일 제목을 정하세요.
mailObj.Subject = "제목"
'이메일 본문을 정의하세요.
mailObj.Body = "메일 본문!"
'이메일은 HTML 형식으로 전송됩니다.
mailObj.BodyFormat = MailFormat.Html
'메일의 제한된 수준을 정의하고 여기서는 높게 설정하세요.
mailObj.Priority = MailPriority.High
'보낸 이메일에 첨부파일을 첨부하세요.
mailObj.Attachments.Add(새 메일 첨부 파일("c:aa.doc"))
smTp.Send(mailObj)
End Sub
3. VB.NET 또는 C#에서 Windows 애플리케이션 개발 시 System.Net.Sockets를 사용합니다.
또한 SMTP 프로토콜을 기반으로 합니다. 1. SMTP 프로토콜 소개
1. 클라이언트는 서버의 포트 25(220 server.com Simple Mail Transfer Service Ready)를 통해 서버에 대한 TCP/IP 연결을 설정합니다.
2. 클라이언트는 "HELO" 명령을 사용하여 발신자 클라이언트를 식별합니다: HELO server.com
서버 측: 250 server.com
3. 클라이언트가 MAIL 명령을 보내고 서버는 OK로 응답하여 클라이언트를 받을 준비가 되었음을 나타냅니다. MAIL FROM: <
[email protected] >
서버측: 250 OK
4. 클라이언트는 수신자를 식별하기 위해 RCPT 명령을 보내고 서버는 수신자에 대한 이메일 클라이언트를 수락할지 여부에 응답합니다. RCPT TO: <
[email protected] >
서버측: 250 OK
5. 협상이 완료된 후 DATA 명령을 사용하여 이메일 클라이언트에 DATA를 보냅니다.
서버측: 354 메일 입력 시작: <CRLF>.<CRLF>로 끝남
6. 클라이언트는 입력 콘텐츠를 로 끝내고 클라이언트에 보냅니다. 제목: <CRLF>
내용<CRLF>
.<CRLF>
7. 클라이언트는 QUIT 명령을 사용하여 종료됩니다.
클라이언트: 종료
서버 측: 250 server.com 폐쇄 전송 채널
장점: 이를 기반으로 자체 구성요소를 개발할 수 있습니다. 소켓을 사용하면 네트워크 프로그래밍을 개발할 수 있습니다. 단점:
이메일을 보내는 코드가 상대적으로 많습니다.
sendData를 문자열로 희미하게 표시
Dim szData를 바이트()로
희미한 CRLF를 문자열로
CRLF = "rn"
'서버 포트 25에 대한 연결을 만듭니다.
Dim SmtpServ를 새 TcpClient로 사용(txtsmtp.Text, 25)
lstlog.Items.Clear()
'서버 초기 정보 표시
희미한 NetStrm을 NetworkStream으로 사용
NetStrm = SmtpServ.GetStream()
새 StreamReader(SmtpServ.GetStream())로 RdStrm을 희미하게 만듭니다.
RdStrm.ReadLine() <> ""이면 lstlog.Items.Add(RdStrm.ReadLine())
'
sendData = "HELO 서버 " + CRLF
szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray())
NetStrm.Write(szData, 0, szData.Length)
lstlog.Items.Add(RdStrm.ReadLine())
'발신자를 표시
sendData = "메일 보낸 사람: " + "<" + txtfrom.Text + ">" + CRLF
szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray())
NetStrm.Write(szData, 0, szData.Length)
lstlog.Items.Add(RdStrm.ReadLine())
'수신자로 표시
sendData = "RCPT 대상: " + "<" + txtTo.Text + ">" + CRLF
szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray())
NetStrm.Write(szData, 0, szData.Length)
lstlog.Items.Add(RdStrm.ReadLine())
'콘텐츠 전송 준비
sendData = "데이터" + CRLF
szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray())
NetStrm.Write(szData, 0, szData.Length)
lstlog.Items.Add(RdStrm.ReadLine())
'주제 보내기
sendData = "제목: " + txtsub.Text + CRLF
'컨텐츠 보내기
sendData = sendData + txtmsg.Text + CRLF
'보내기 종료
sendData = sendData + "."
szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray())
NetStrm.Write(szData, 0, szData.Length)
lstlog.Items.Add(RdStrm.ReadLine())
'종료
sendData = "종료" + CRLF
szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray())
NetStrm.Write(szData, 0, szData.Length)
lstlog.Items.Add(RdStrm.ReadLine())
'연결을 닫습니다.
NetStrm.Close()
RdStrm.Close()
lstlog.Items.Add("연결이 닫혔습니다.")
lstlog.Items.Add("Sent 성공적으로")
4. CDONTS, IIS SMTP와 함께 제공되는 기본 전송 구성 요소
특별히 다운로드할 필요는 없습니다. Microsoft는 이미 이 구성 요소를 제공하고 있습니다. 2000이 설치되어 있으면 NT의 SMTP에도 해당 구성 요소가 있습니다.
장점: 구성요소는 운영 체제에서 제공됩니다. 단점: 기능이 좋지 않고 확장성이 떨어집니다
.
Mymail.From = *** '편지를 보낸 사람의 사서함
Mymail.To = *** '편지 수신자의 사서함
Mymail.CC = *** '참조
Mymail.BCC = *** '바인딩 보내기
Mymail.Subject = *** '편지 제목
Mymail.Body = *** '편지 본문
'우선순위를 0-중요하지 않음, 1-일반, 2-중요로 설정합니다.
Mymail.Importance = 2
마이메일.보내기()
Mymail = 없음
5. JMail 구성요소 사용
Jmail은 다음과 같은 특징을 가지고 있습니다.
(1) 첨부 파일을 보낼 수 있습니다.
(2) 자세한 로그 기능을 통해 문제를 확인할 수 있습니다.
(3) 이메일 전송 우선순위를 설정합니다.
(4) HTML 또는 TXT로 이메일을 보내는 등 다양한 형식의 이메일 전송을 지원합니다. 이것은 무료 구성 요소입니다.
(5) 블라인드 이메일/(CC) 참조 사본/긴급 편지를 보내는 기능;
(6) 가장 중요한 것은 구성 요소가 무료이고 비용을 지불할 필요가 없으므로 사용할 가치가 매우 높다는 것입니다.
웹 사이트:
http://www.dimac.net/ , 현재 버전은 4.3입니다.
JMail 구성 요소의 공통 속성:
본문 이메일 본문
호출 로깅 디버그 사용을 위한 로그 기록
우선순위 이메일의 우선순위(1~5)입니다.
발신자 발신자
ServerAddress SMTP 서버의 IP 주소 또는 이름
제목 이메일 제목
JMail 구성 요소 의 일반적인 방법
:
AddAttachment는 첨부 파일을 지정합니다.
AddRecipient가 수신자를 추가합니다.
AddRecipientBCC 보낸 사람과 BCC 받는 사람에게만 알려진 숨겨진 복사본입니다.
추가수신자CC CC
Execute가 이메일을 보내고
필요한 속성과 메소드를 이해한 후, 나머지 부분은 사용자가 입력한 이메일을 받아 AddRecipient 메소드에 파라미터로 전달한 후 필요에 따라 나머지 속성을 채워 최종적으로 Execute로 전송합니다. 방법. 예:
Dim JMail
JMail = Server.CreateObject("JMail.SMTPMail")
JMail.Logging = 참
JMail.ServerAddress = "202.96.144.48"
JMail.Sender = "
[email protected] "
JMail.Subject = "제목."
JMail.Body = "본문."
JMail.AddRecipient("
[email protected] ")
JMail.AddAttachment("c:go.gif")
JMail.우선순위 = 3
JMail.Execute()
JMail = 없음
요약: 선택할 솔루션은 프로그램의 목적과 요구 사항에 따라 다릅니다. 이 문서에서는 참조할 수 있는 몇 가지 예를 제공합니다. 예를 들어 UFIDA 소프트웨어 U8은 Outlook 구성 요소를 호출하여 자체 소프트웨어에 통합합니다. 내가 직접 작성한 관리 시스템(SMTP)도 똑같이 강력하지만 코딩 시간이 더 깁니다!