我正在尝试制作一个向gmail服务器发送电子邮件的程序。我已完成目标,但现在我的下一个目标是创建一个登录表单,我可以使用不同的Gmail帐户登录并发送邮件。
以下是Login
表单的代码:
private void btnLogin_Click(object sender, EventArgs e)
{
User user = new User();
user.Email = textBoxEmail.Text;
user.Password = textBoxPassword.Text;
}
我希望我的user.Email
和user.Password
以第二种形式(主要形式)保存,即:
private void btnSend_Click(object sender, EventArgs e) {
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
MailMessage mail = new MailMessage();
mail.From = new MailAddress(/*I want user.Email to be here */,"Pavel Valeriu");
mail.To.Add(textBoxTo.Text);
mail.Subject = textBoxSubject.Text;
mail.Body = richText.Text;
SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential("pavelvaleriu24@gmail.com", /* and user.Password here */);
SmtpServer.EnableSsl = true;
SmtpServer.Send(mail);
MessageBox.Show("mail sent");
Close();
}
答案 0 :(得分:1)
您可以通过构造函数
将登录表单中的值传递给主窗体FormLogin:
private void btnLogin_Click(object sender, EventArgs e)
{
User user = new User();
user.Email = textBoxEmail.Text;
user.Password = textBoxPassword.Text;
FormMain frm = new FormMain (textBoxEmail.Text,textBoxPassword.Text);
frm.show();
}
FormMain:
public FormMain(string _email,string _password)
{
InitializeComponent();
Email = _email;
Password = _password;
}
string Email = sting.Empty;
string Password = string.Empty;
private void btnSend_Click(object sender, EventArgs e)
{
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
mail.From = new MailAddress(Email ,"Pavel Valeriu");
mail.To.Add(textBoxTo.Text);
mail.Subject = textBoxSubject.Text;
mail.Body = richText.Text;
SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential("pavelvaleriu24@gmail.com", Password );
SmtpServer.EnableSsl = true;
SmtpServer.Send(mail);
MessageBox.Show("mail Send");
Close();
}
编辑: -
包含表单的默认构造函数
public FormMain()
{
InitializeComponent();
}
答案 1 :(得分:0)
您可以使用字段static class UserInformation
定义static string Username
& static string Password
以及第一种形式
UserInformation.Username = "Sth";
以第二种形式
youTextBox.Text = UserInformation.Username.
请阅读http://msdn.microsoft.com/en-us/library/79b3xss3.aspx了解更多信息
答案 2 :(得分:0)
您可以在第一个位置声明用户class
为public static
:
public static class User...
...
private void btnLogin_Click(object sender, EventArgs e)
{
User.Email = textBoxEmail.Text;
User.Password = textBoxPassword.Text;
}
并在主窗体上访问Form1
的用户属性:
...
mail.From =Form1.User.Email
答案 3 :(得分:0)
如果安全性和设计不是大问题,并且您只是希望它能够正常工作,那么您可以继续创建一个可以为您保存此信息的静态类,如数据提供者。
public static class LoginDataProvider
{
public static string Email {get; set;}
public static string Password {get; set;}
}
然后您可以继续保存登录表单中的信息:
LoginDataProvider.Email = textBoxEmail.Text;
LoginDataProvider.Password = textBoxPassword.Text;
然后您可以继续以相同的方式检索第二种形式的信息。
答案 4 :(得分:0)
如果您正在使用ASP.NET开发应用程序,则可以在“会话”中提及用户名和密码,您可以使用窗口应用程序,将凭据存储在全局变量中并访问任何Web表单
答案 5 :(得分:0)
当您创建主窗体的对象时,在对用户进行身份验证时,创建一个constructor
以传递用户的电子邮件&密码如
mainForm(string userEmail, string password) or mainForm(User user)
所以
User user = new User();
user.Email = textBoxEmail.Text;
user.Password = textBoxPassword.Text;
If(user.Authenticate())
{
//call new MainForm(user)