Acessando o Gmail no SSL
SMTP
Este artigo mostra como conectar-se a um servidor Gmail e enviar um e-mail usando o protocolo SMTP no SSL.
Conectando ao servidor SMTP do Gmail
O seguinte trecho de código mostra como se conectar a um servidor SMTP habilitado para SSL.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET | |
SmtpClient client = new SmtpClient("smtp.gmail.com"); | |
// Set username, Password, Port No, and SecurityOptions | |
client.Username = "your.email@gmail.com"; | |
client.Password = "your.password"; | |
client.Port = 587; |
Enviando uma Mensagem de Email
O código acima configura o objeto SMTPClient para se conectar ao servidor Gmail. Para enviar uma mensagem usando o mesmo objeto cliente, crie um objeto da classe MailMessage e envie a mensagem usando o objeto cliente SMTP. O seguinte trecho de código mostra como definir as propriedades da mensagem, por exemplo, o assunto, para e corpo:
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET | |
MailMessage msg = new MailMessage(); | |
// Set From, To whom | |
msg.From = new MailAddress("user@gmail.com"); | |
msg.To.Add(new MailAddress("user@gmail.com")); | |
// Set the subject, priority, Set the message bodies (plain text and HTML), and Add the attachment | |
msg.Subject = "subject"; | |
msg.Priority = MailPriority.High; | |
msg.Body = "Please open with html browser"; | |
msg.HtmlBody = "<bold>this is the mail body</bold>"; | |
Attachment attachment = new Attachment(dataDir + "File.txt"); | |
msg.Attachments.Add(attachment); | |
client.Send(msg); |
IMAP
Este artigo mostra como realizar uma série de atividades em um servidor de e-mail habilitado para SSL usando o protocolo IMAP:
- Conectar-se a um servidor de e-mail.
- Obter o número total de mensagens em uma caixa de entrada.
- Salvar mensagens localmente.
- Criar uma mensagem e adicioná-la a uma pasta.
Conectando ao Servidor de Email
Use o objeto da classe ImapClient da Aspose.Email para se conectar ao servidor de e-mail. O endereço do servidor, a porta, o nome de usuário e a senha são necessários para estabelecer uma conexão. O Gmail usa a porta 993 para o protocolo IMAP, o seguinte trecho de código mostra como se conectar ao Gmail usando essa porta.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET | |
// Connect to the Gmail server | |
ImapClient imap = new ImapClient("imap.gmail.com", 993, "user@gmail.com", "pwd"); |
Selecionando uma Pasta e Obtendo o Número Total de Mensagens
Verificar a pasta da Caixa de Entrada é a tarefa mais frequente ao checar e-mails. Usando a Aspose.Email, isso pode ser feito com apenas duas linhas simples de código. O seguinte trecho de código mostra como acessar a pasta da Caixa de Entrada e obter o número total de mensagens na pasta.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET | |
imap.SelectFolder(ImapFolderInfo.InBox); | |
Console.WriteLine(imap.CurrentFolder.TotalMessageCount + " messages found."); |
Salvando Mensagens em um Disco Rígido Local
Depois de selecionar uma pasta com o método SelectFolder, use a função ListMessages para obter uma lista de todas as mensagens na pasta em um objeto ImapMessagesInfoCollection. Percorra esta coleção e salve as mensagens de e-mail no disco local do computador da seguinte forma:
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET | |
// Gets the message info collection and Download each message | |
ImapMessageInfoCollection list = imap.ListMessages(); | |
for (int i = 0; i < list.Count; i++) | |
{ | |
// Save the message as an EML file | |
imap.SaveMessage(list[i].UniqueId, list[i].UniqueId + "_out.eml"); | |
} |
Criando uma Nova Pasta
O protocolo IMAP também permite criar uma nova pasta no servidor de e-mail. Isso pode ser feito usando uma chamada de função simples.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET | |
imap.CreateFolder("NewFolder"); |
Criando uma Nova Mensagem em uma Pasta
Adicione uma nova mensagem à pasta usando as classes MailMessage e ImapClient. Os exemplos abaixo criam primeiro um objeto MailMessage fornecendo os valores de assunto, para e de. Em seguida, ele se inscreve em uma pasta e adiciona a mensagem a ela. O seguinte trecho de código mostra como criar uma nova mensagem em uma pasta.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET | |
// Create a message and Subscribe to the Inbox folder ans Append the newly created message | |
MailMessage message = new MailMessage("user@domain1.com", "user@domain2.com", "subject", "message"); | |
imap.SelectFolder(ImapFolderInfo.InBox); | |
imap.SubscribeFolder(imap.CurrentFolder.Name); | |
imap.AppendMessage(imap.CurrentFolder.Name, message); |
POP3
Este artigo mostra alguns exemplos que usam o protocolo POP3 no SSL. Para se conectar a um servidor protegido por SSL, precisamos definir a porta SSL e duas propriedades extras. O restante do código é o mesmo que para conectar a um servidor POP3 normal.
Os exemplos de código abaixo mostram como:
- Conectar-se a um servidor SSL.
- Verificar o status da caixa de correio.
- Obter informações sobre a mensagem.
- Recuperar e-mails.
Conectando ao Servidor de Email
Conecte-se ao servidor de e-mail habilitado para SSL usando a classe Pop3client conforme descrito abaixo.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET | |
// Create a POP3 client | |
Pop3Client client = new Pop3Client(); | |
// Basic settings (required) | |
client.Host = "pop.gmail.com"; | |
client.Username = "user@gmail.com"; | |
client.Password = "pwd"; | |
client.Port = 995; | |
client.SecurityOptions = SecurityOptions.SSLImplicit; |
Verificando o Status da Caixa de Correio
O seguinte trecho de código mostra como verificar o número de mensagens armazenadas na caixa de correio e o tamanho da caixa de correio. Use a classe Pop3MailboxInfo para isso.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET | |
// Create an object of type Pop3MailboxInfo and Get the mailbox information, Check number of messages, and Check mailbox size | |
Pop3MailboxInfo info; | |
info = client.GetMailboxInfo(); | |
Console.WriteLine(info.MessageCount); | |
Console.Write(info.OccupiedSize + " bytes"); |
Verificando Informações da Mensagem
Este exemplo verifica todas as mensagens na caixa de correio usando a classe Pop3MessageInfoCollection. Use a função Pop3Client.ListMessages() para obter a coleção Pop3MessageInfoCollection. Em seguida, percorra a coleção para ler as informações da mensagem: ID da mensagem, índice, assunto e tamanho.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET | |
// Get the list of messages in the mailbox and Iterate through the messages | |
Pop3MessageInfoCollection infos = client.ListMessages(); | |
foreach (Pop3MessageInfo info in infos) | |
{ | |
Console.Write("ID:" + info.UniqueId); | |
Console.Write("Index number:" + info.SequenceNumber); | |
Console.Write("Subject:" + info.Subject); | |
Console.Write("Size:" + info.Size); | |
} |
Recuperando Mensagens
Para obter as mensagens da caixa de correio, use o método FetchMessage() da classe Pop3Client para obter a mensagem em um objeto do tipo MailMessage. O seguinte trecho de código mostra como contar o número de e-mails na caixa de correio e depois percorrê-los para recuperar cada um.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET | |
// Get the number of messages in the mailbox | |
int messageCount = client.GetMessageCount(); | |
// Iterate through the messages and retrieve one by one | |
for (int i = 1; i <= messageCount; i++) | |
{ | |
// Create an object of type MailMessage and Retrieve the message in MailMessage format directly | |
Aspose.Email.MailMessage msg; | |
msg = client.FetchMessage(i); | |
Console.WriteLine("From:" + msg.From.ToString()); | |
Console.WriteLine("Subject:" + msg.Subject); | |
Console.WriteLine(msg.HtmlBody); | |
msg.Save(i + "Getmessage_out.eml"); | |
} |