使用FluentEmail发送邮件



我随机创建了一个Gmail帐户。我想用c#把这个账户发送到我的个人Gmail账户。最近我发现了FluentEmail。这是类:

public static class EmailSender
{
//the random account mail and password
private static  string username = "blabla";
private static  string password = "blabla";

static EmailSender()
{

NetworkCredential myCredentials = new NetworkCredential();
myCredentials.UserName = username;
myCredentials.Password = password;
var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
DeliveryMethod = SmtpDeliveryMethod.Network,
Credentials = myCredentials,
Port = 465,
EnableSsl = true,

};
var sender = new SmtpSender(() => smtp);
Email.DefaultSender = sender;
}
public static async Task SendEmail(string body)
{ 
var email = await Email
.From(username)
.To("mymail")
.Subject("NEW BUG")
.Body(body)
.SendAsync();
if (email.Successful)
{
Acr.UserDialogs.UserDialogs.Instance.Alert("Your message was sent!", "Succesful", "Ok");
}

}
}

我不知道为什么,但是当我点击发送按钮时什么也没发生。当我连续点击2次时,应用程序崩溃了。我在SendEmail函数的开始设置了一个断点,但我仍然不知道出了什么问题。也许我在构造函数中设置了错误?

我不熟悉FluentEmail,但有两点显然是有问题的:

  1. 检查邮件是否发送成功(if (email.Successful))。如果没有,你就…什么也不做。相反,找出为什么邮件尚未发送,并显示该信息。如果你的返回对象有一个属性Successful,我很确定它也有一个属性告诉你出了什么问题。

  2. 我确实瞥见了FluentEmail的源代码(基于你的问题),它显然使用。net的内置SmtpClient类。SmtpClient不支持465端口的smtp协议。支持的选项是端口25的未经身份验证的SMTP或端口587的STARTTLS。

相关内容

  • 没有找到相关文章

最新更新