System.Net.Mail с помощью Gmail Smtp от адреса всегда мое

Я думаю, что Gmail переписывает адрес from и использует учетную запись, указанную в сетевых учетных данных для from.

    MailMessage message = new MailMessage();
    message.From = new MailAddress("jimmy@gmail.com");
    message.To.Add(new MailAddress("myacct@gmail.com"));
    message.Subject = "[Yep] Contact Form";
    message.Body = msg;
    message.IsBodyHtml = false;

    SmtpClient client = new SmtpClient();
    client.UseDefaultCredentials = false;
    NetworkCredential networkCredentials = new NetworkCredential("myacct@gmail.com", "pass");
    client.Credentials = networkCredentials;
    client.EnableSsl = true;
    client.Host = "smtp.gmail.com";
    client.Port = 587;

    try
    {
        client.Send(message);

Это полученное письмо:

От: myacct@gmail.com Кому: myacct@gmail.com Дата: Вс, 23 сентября 2012 г. 14:44:54 -0700 (PDT) Тема: [Да] Форма контакта Тип контента: текст / обычный текст; charset=us-ascii Content-Transfer-Encoding: цитируемый для печати

Это тест

Я знаю, что это используется для работы, но теперь от всегда мое. Могу ли я получить подтверждение, если у всех есть эта проблема или это только у меня?

3 ответа

GMail (и многие другие провайдеры электронной почты) не позволят вам изменить заголовок FROM. Это позволило бы подделку электронной почты.

Dim attachmentFile As String = Nothing If FileUpload1.HasFile Then

        Try
            FileUpload1.SaveAs("C:\files\" + FileUpload1.FileName)
            attachmentFile = FileUpload1.PostedFile.FileName
        Catch ex As Exception
            litStatus.Text = "File Upload Failed !! " + ex.Message.ToString()
        End Try


        Try
            Dim mail As New MailMessage()
            Dim SmtpServer As New SmtpClient("smtp.gmail.com")

            mail.From = New MailAddress("your-gamila-ddress@gmail.com")




            'you have to provide your gmail address as from address'
            mail.[To].Add(txtTo.Text)
            mail.Subject = txtSubject.Text
            mail.Body = txtBody.Text

            Dim attachment As System.Net.Mail.Attachment
            attachment = New System.Net.Mail.Attachment(attachmentFile)
            mail.Attachments.Add(attachment)

            SmtpServer.Port = 587
            SmtpServer.Credentials = New System.Net.NetworkCredential("gamil-username", "gmail-passowrd")


            'you have to provide you gamil username and password'
            SmtpServer.EnableSsl = True
            SmtpServer.Send(mail)
            litStatus.Text = "Email successfully sent."
        Catch ex As Exception
            litStatus.Text = "Mail Send Failed ! " + ex.Message.ToString()
        End Try

    Else
        litStatus.Text = "Please select a file for uploading"
    End If

Чтобы достичь этого результата, вам нужно будет выбрать собственного почтового провайдера, такого как godaddy, или купить бизнес-подписку в gmail.

Вы также можете сослаться на отправку почты из службы Windows Azure, используя Godaddy SMTP

Другие вопросы по тегам