kullanarak Gmail üzerinden gönderilen postalar için farklı bir "Gönderen" adresi ayarlıyorum System.Net.Mail
'u kullanan basit bir posta gönderen sınıfı kullanıyorum. Uygulamamı çeşitli kullanıcılar tarafından e-posta gönderebilmeleri için (aynı smtp hesabını kullanarak) güncellemem gerekiyor, ancak "Gönderen" adresinin gönderilmesine neden olan kullanıcı olması gerekir. MailMessage
'un From
özelliğini ayarlamayı denedim ve MailMessage
yapıcısından adresini yazdım ama çalışanların burnunu. Eminim, basit bir şey eksik veya posta API'sinin nasıl çalıştığını anlamadım. Biri yardım edebilir mi?C#
Basit bir posta gönderme arabirimi sağlamak için temel olarak MailMessage
, NetworkCredential
ve SmtpClient
'u yükleyen MailSender sınıfım.
class MailSender
{
private NetworkCredential credential;
private String SenderAddress;
private SmtpClient client;
public MailSender(String ServerURL, String account, String password, String FromAddress = null, int port = -1, bool UseSSL = true)
{
if (port > 0)
{
client = new SmtpClient(ServerURL, port);
}
else
{
client = new SmtpClient(ServerURL);
}
credential = new NetworkCredential(account, password);
client.UseDefaultCredentials = false;
client.EnableSsl = UseSSL;
client.Credentials = credential;
if (FromAddress != null)
{
SenderAddress = FromAddress;
}
else
{
SenderAddress = account;
}
}
public bool SendMessage(String to, String subject, String body)
{
try
{
MailMessage message = new MailMessage(SenderAddress, to, subject, body);
message.From = new MailAddress(SenderAddress, "tester");
message.IsBodyHtml = true;
client.Send(message);
}
catch
{
return false;
}
return true;
}
}
IIRC, GMail, hesabınızın ayarlarına göre değiştirir. – leppie
Google'ın, kimlik doğrulaması için kullandığınız kimlik bilgileri dışındaki hesaplardan posta göndermenize izin vermeyeceği iyi olabilir. –
@leppie ve @Mikael Svenson: ofisimizin smtp ile de denedi. Aynı sonuçlar. – MAK