>  기사  >  백엔드 개발  >  C# 보충 SmtpClient 클래스

C# 보충 SmtpClient 클래스

黄舟
黄舟원래의
2017-02-06 17:23:541928검색

SmtpClient 클래스

를 사용하면 애플리케이션이 SMTP(Simple Mail Transfer Protocol)를 사용하여 이메일을 보낼 수 있습니다.

네임스페이스: system.net.mail

속성

ClientCertificates: SSL(Secure Socket Layer) 연결을 설정하는 데 사용해야 하는 인증서를 지정합니다

Credentials: 보낸 사람을 인증하는 데 사용되는 자격 증명을 가져오거나 설정합니다.

DeliveryFormat: 이메일을 보내기 위해 SmtpClient에서 사용하는 배달 형식을 가져오거나 설정합니다.

DeliveryMethod: 이메일을 보내는 방법을 지정합니다. 메일이 메시지를 처리합니다.

EnableSsl: SmtpClient가 SSL(Secure Socket Layer) 암호화 연결을 사용하는지 여부를 지정합니다.

호스트: 하나 이상의 SMTP 트랜잭션을 기록하는 데 사용되는 호스트의 IP를 가져오거나 설정합니다. 주소

PickupDirectoryLocation: 애플리케이션이 로컬 SMTP 서버에서 처리하기 위해 메일을 저장하는 폴더를 가져오거나 설정합니다.

포트: SMTP 트랜잭션에 사용되는 포트를 가져오거나 설정합니다.

ServicePoint: 네트워크 연결을 가져옵니다. 이메일 전송에 사용됩니다.

TargetName: 인증을 위해 확장된 보호를 사용할 때 SPN(서비스 공급자 이름)을 가져오거나 설정합니다.

Timeout: 통화 보내기에 대한 시간 초과를 지정하는 값을 가져오거나 설정합니다

UseDefaultCredentials: DefaultCredentials가 요청과 함께 전송되는지 여부를 제어하는 ​​부울 값을 가져오거나 설정합니다.

Method

Dispose()

SMTP에 QUIT 메시지 보내기 서버에서 TCP 연결을 정상적으로 종료하고 현재 인스턴스에서 사용하는 SmtpClient 클래스의 모든 리소스를 해제

Dispose(Boolean)

SMTP 서버와 TCP로 전송되면 QUIT 메시지 보내기 연결이 정상적으로 종료되면 현재 인스턴스에서 사용하는 SmtpClient 클래스의 모든 리소스가 해제되며, 필요에 따라 관리되는 리소스도 해제될 수 있습니다

Equals(Object)

지정된 개체인지 확인 현재 객체와 동일

Finalize()

가비지 수집 메커니즘이 재활용하기 전에 객체가 리소스를 해제하고 다른 정리 작업을 수행하도록 허용

GetHashCode()

기본 해시 함수로

GetType()

현재 인스턴스의 유형 가져오기

MemberwiseClone()

현재 개체 얕은 복사본

OnSendCompleted(AsyncCompletedEventArgs)

SendComplete 이벤트 발생

Send(MailMessage)

지정된 메시지를 SMTP 서버로 전송하여 배달

Send(String, String, String, String)

지정된 이메일을 SMTP 서버로 전송하여 전달합니다. 이메일 보낸 사람, 받는 사람, 제목 및 메시지 본문은 지정된 문자열 개체

SendAsync(MailMessage, Object)

를 사용하여 지정된 이메일을 SMTP 서버로 전송하여 배달합니다. 이 메서드는 호출 스레드를 차단하지 않으며 호출자가 작업이 완료될 때 호출되는 메서드에 개체를 전달할 수 있도록 합니다.

SendAsync(String, String, String, String, Object)

이메일은 배달을 위해 SMTP 서버로 전송됩니다. 이메일 보낸 사람, 받는 사람, 제목 및 메시지 본문은 String 개체를 사용하여 지정됩니다. 이 메서드는 호출 스레드를 차단하지 않으며 호출자가 작업이 완료될 때 호출되는 메서드에 개체를 전달할 수 있도록 합니다.

SendAsyncCancel()

이메일 보내기를 위한 비동기 작업을 취소합니다.

SendMailAsync(MailMessage)

비동기 작업을 위해 지정된 메시지를 SMTP 서버로 보냅니다. 작업은 형식으로 전송됩니다.

SendMailAsync(String, String, String, String)

지정된 메시지를 비동기 작업으로 전달하기 위해 SMTP 서버로 보냅니다. . 이메일 보낸 사람, 받는 사람, 제목 및 메시지 본문은 String 개체를 사용하여 지정됩니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)

이벤트

SendCompleted

비동기 이메일 보내기 작업이 완료될 때 발생

비고

아래 표는 에 표시된 클래스는 SmtpClient를 사용하여 보낼 수 있는 이메일을 작성하는 데 사용됩니다.

첨부 클래스

는 파일 첨부를 나타냅니다. 이 클래스를 사용하면 이메일에 파일, 스트림 또는 텍스트를 첨부할 수 있습니다.

MailAddress 클래스

보낸 사람 및 받는 사람 이메일 주소를 나타냅니다.

MailMessage 클래스

이메일을 나타냅니다.

SmtpClient를 사용하여 이메일을 구성하고 보내려면 다음 정보를 지정해야 합니다.

이메일 전송을 위한 SMTP 호스트 서버입니다.

인증을 위해 SMTP 서버에 자격 증명이 필요한 경우.

보내는 사람 이메일 주소입니다.

이메일 주소 또는 수신자의 주소입니다.

메시지 내용.

이메일에 첨부 파일을 포함하려면 먼저 Attachment 클래스를 사용하여 첨부 파일을 만든 다음 MailMessage.Attachments 속성을 통해 메시지에 추가하세요. 사용하는 이메일 리더와 첨부 파일 형식에 따라 일부 수신자가 첨부 파일을 읽지 못할 수도 있습니다. 원래 형식으로 표시된 첨부 파일을 유지할 수 없는 클라이언트의 경우 MailMessage.AlternateViews 속성을 지정하여 대체 보기를 지정할 수 있습니다.

응용 프로그램 또는 컴퓨터 구성 파일을 사용하여 모든 SmtpClient 개체에 대한 기본 호스트, 포트 및 자격 증명 값을 지정할 수 있습니다.

이메일이 SMTP 서버로 전송되기를 기다리는 동안 이메일과 청크를 보내려면 동기식 Send 방법을 사용하세요. 이메일을 전송하는 동안 프로그램의 기본 스레드가 계속 실행되도록 하려면 비동기 SendAsync 메서드 중 하나를 사용하세요. SendAsync 작업이 완료되면 SendCompleted 이벤트가 발생합니다. 이 이벤트를 수신하려면 SendCompletedEventHandler 대리자를 SendCompleted에 추가해야 합니다. SendCompletedEventHandler 대리자가 알림의 SendCompleted 이벤트를 처리하기 위해 참조해야 하는 콜백 메서드입니다. 비동기 이메일 전송을 취소하려면 SendAsyncCancel 메서드를 사용하세요.

이메일 전송 인터페이스의 메인 코드:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;using System.Windows.Forms;
using System.IO;using System.Net;using System.Net.Mail;
namespace SendEmail{
public partial class Form3 : Form{
string severaddress;string mailuser;string userpwd;public 
Form3(){
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e){
Form6 form = new Form6();
form.SendParaHandler +=new Form6.SendPara(reload);
//事件的挂接form.Show();
}
public void reload(){
StreamReader read = new StreamReader(@"fajianren.asdf");
severaddress = read.ReadLine();
mailuser = read.ReadLine();
userpwd = read.ReadLine();
read.Close();}
private void Form3_Load(object sender, EventArgs e){
reload();}
public bool sendmail(string mailfrom,string mailto,string mailsubject,string mailbody){
MailAddress from = new MailAddress(mailfrom);
MailMessage message = new MailMessage();
try{message.From = from;
message.To.Add(mailto);
message.Subject = mailsubject;
message.Body = mailbody;
message.Priority = MailPriority.Normal;
SmtpClient smtp = new SmtpClient();
smtp.Host = severaddress;
smtp.UseDefaultCredentials = false;
smtp.EnableSsl = true;
smtp.Credentials = new NetworkCredential(mailuser,userpwd);
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.Send(message);
}
catch(Exception e){ 
return 
false;
}
return 
true;
}
private void button2_Click(object sender, EventArgs e){
string mailfrom = mailuser;
string mailto = textBox1.Text;
string mailsubject = textBox2.Text;
string mailbody = textBox3.Text;
if (sendmail(mailfrom, mailto, mailsubject, mailbody)){
MessageBox.Show("邮件发送成功");
}
else{
MessageBox.Show("邮件发送失败");
}
}
}
}

발신자 정보 인터페이스 설정의 메인 코드:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace SendEmail
{
public partial class Form
6 : Form
{public Form6(){InitializeComponent();
}
private void button1_Click(object sender, EventArgs e){
Write();
}
//加载信息
private void Form6_Load(object sender, EventArgs e){
StreamReader read = new StreamReader(@"fajianren.asdf");
textBox1.Text = read.ReadLine();
textBox2.Text = read.ReadLine();
textBox3.Text = read.ReadLine();
read.Close();
}
//写入信息
public void Write(){
StreamWriter write = new StreamWriter(@"fajianren.asdf");
write.WriteLine(textBox1.Text);
write.WriteLine(textBox2.Text);
write.WriteLine(textBox3.Text);
write.Close();
}
public delegate void SendPara();
//定义委托
public event SendPara SendParaHandler;
//定义事件
private void button2_Click(object sender, EventArgs e){
SendParaHandler.Invoke();
Write();
this.Close();
}
}
}

위는 C#의 SmtpClient 클래스 내용입니다. .더 많은 관련 내용을 보시려면 PHP 중국어 홈페이지(www.php.cn)를 팔로우해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:C# 반사 반사다음 기사:C# 반사 반사