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");
}