Можно ли пользователю импортировать контакты из сохраненных контактов в Windows? - PullRequest
0 голосов
/ 13 октября 2011

Я недавно написал программу для работы с текстовыми сообщениями (скорее, текстовые сообщения по электронной почте), и я хотел бы сделать ее более полезной, чем она есть на данный момент ... на данный момент это не что иное, как спам-программа, хотя в мою защиту значение по умолчанию для количества текстов равно 1. В любом случае ... вместо того, чтобы пользователь вводил номер телефона, моя программа могла бы открыть диалоговое окно, в котором пользователь мог выбирать из списка контактов, сохраненных где-то на окна? (Это вообще существует? Возможно контакты Outlook?)

Ниже я предоставил код, который у меня есть до этого момента.

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.Net.Mail;

namespace TextingThroughEmail
{
    public partial class Form1 : Form
    {
        // message elements
        MailAddress mTo = null;
        MailAddress mFrom = new MailAddress("{You ain't seeing this either.}","<< Your Imaginary Friend >>");
    private string mFromPassword = "{lol, you ain't seeing this}";

    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        var result = MessageBox.Show("Are you sure you want to quit?", "Exit", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
        if (result == DialogResult.Yes){ }
        else { e.Cancel = true; }
    }

    private void ExitButton_Click(object sender, EventArgs e)
    {
        Application.Exit();
    }

    private void SendButton_Click(object sender, EventArgs e)
    {

        //This section will retrieve data from the combo box.
        EmailInfo data = (EmailInfo)Carrier.SelectedItem;

        //This section goes through the PHONE NUMBER and validates it            
        long number1 = 0;
        bool canConvert = long.TryParse(PhoneNumber.Text, out number1);
        if (canConvert == false)
        {
            MessageBox.Show("Please enter a valid 10 digit phone number", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            return;
        }

        if(PhoneNumber.Text.Trim().Length != 10)
        {
            MessageBox.Show("Please enter a valid 10 digit phone number", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            return;
        }

        //Vaidation for the message section
        if (Message.Text.Trim().Length > 160)
        {
            MessageBox.Show("Please shorten your message.", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            return;
        }

        mTo = new MailAddress(PhoneNumber.Text + data.EmailAddress, "");
        MailAddress mTo2 = new MailAddress(PhoneNumber.Text + "@txt.att.net", "");
        MailAddress mTo3 = new MailAddress(PhoneNumber.Text + "@vtext.com", "");
        MailAddress mTo4 = new MailAddress(PhoneNumber.Text + "@tmomail.net", "");
        MailAddress mTo5 = new MailAddress(PhoneNumber.Text + "@messaging.sprintpcs.com", "");

        //The mail message setup
        MailMessage message = new MailMessage(mFrom, mTo);
        message.Subject = Subject.Text;
        message.Body = Message.Text;

        //messages for Unknown
        //At&t
        MailMessage message2 = new MailMessage(mFrom, mTo2);
        message.Subject = Subject.Text;
        message.Body = Message.Text;
        //verizon
        MailMessage message3 = new MailMessage(mFrom, mTo3);
        message.Subject = Subject.Text;
        message.Body = Message.Text;
        //t mobile
        MailMessage message4 = new MailMessage(mFrom, mTo4);
        message.Subject = Subject.Text;
        message.Body = Message.Text;
        //sprint
        MailMessage message5 = new MailMessage(mFrom, mTo5);
        message.Subject = Subject.Text;
        message.Body = Message.Text;


            //smtp stuff
            SmtpClient client = new SmtpClient();
            client.Host = "smtp.gmail.com";
            client.Port = 587;
            client.EnableSsl = true;
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.UseDefaultCredentials = false;
            client.Credentials = new System.Net.NetworkCredential(mFrom.Address, mFromPassword);

            long j;
            canConvert =  long.TryParse(NumberOfTexts.SelectedItem.ToString(), out j);

            try
            {
                if (Carrier.SelectedIndex < 4)
                {
                    for (int i = 0; i < j; i++)
                    {
                        client.Send(message);
                    }
                    MessageBox.Show("Sent all messages", "Hooray!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
                else //this is for the unknown bit.
                {
                    for (int i = 0; i < j; i++)
                    {
                        client.Send(message2);
                        client.Send(message3);
                        client.Send(message4);
                        client.Send(message5);
                    }
                    MessageBox.Show("Sent all messages", "Hooray!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception caught in CreateTestMessage2(): {0}",
                  ex.ToString());
            }             
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Carrier.Items.Add(new EmailInfo("@txt.att.net","AT&T"));
            Carrier.Items.Add(new EmailInfo("@vtext.com","Verizon"));
            Carrier.Items.Add(new EmailInfo("@tmomail.net", "T-Mobile"));
            Carrier.Items.Add(new EmailInfo("@messaging.sprintpcs.com", "Sprint"));
            Carrier.Items.Add(new EmailInfo("@randomnezzle.com", "Unknown (A LOT Slower)"));           
            Carrier.SelectedIndex = 0;
            NumberOfTexts.SelectedIndex = 0;
        }

        private void Carrier_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
    }
}

1 Ответ

1 голос
/ 13 октября 2011

Outlook - это типичное место, где люди хранят свои контакты.

Вот фрагмент кода для перечисления всех контактов Outlook через C #:

Перечисление свойств Outlook ContactItem

и еще:

http://dotnet -snippets.com / DNS / Get-все-Outlook, контакты-SID611.aspx

Также, вот обзор объектной модели outlook:

http://msdn.microsoft.com/en-us/library/ms268893(v=vs.80).aspx

...