Malikdanish Ответов: 1

Электронная почта. Адрес из базы данных


У меня есть следующий метод
Private Sub SendHtmlFormattedEmail(ByVal recepientEmail As String, ByVal subject As String, ByVal body As String)

Dim mailMessage As System.Net.Mail.MailMessage = New System.Net.Mail.MailMessage

Try

mailMessage.From = New MailAddress(ConfigurationManager.AppSettings("UserName"))

' mailMessage.CC.Add("danish.habib@plan-international.org")

mailMessage.Bcc.Add("spober_woh@yahoo.com")

mailMessage.Subject = subject

mailMessage.Body = body

mailMessage.IsBodyHtml = True

mailMessage.To.Add(New MailAddress(recepientEmail))

Dim files As List(Of HttpPostedFile) = DirectCast(Cache(Me.Key), List(Of HttpPostedFile))

For Each file As HttpPostedFile In files

mailMessage.Attachments.Add(New Attachment(file.InputStream, Path.GetFileName(file.FileName), file.ContentType))

Next

mailMessage.From = New MailAddress("omer@planrbme.com.pk")


Dim smtp As New SmtpClient()

smtp.Host = "202.165.228.15"

smtp.EnableSsl = False

smtp.Credentials = New System.Net.NetworkCredential("omer@planrbme.com.pk", "Pakistan_123")

smtp.Port = 25

smtp.Send(mailMessage)


Catch ex As Exception

ex.Message.ToString()

End Try

End Sub

Когда я получу почту.Чтобы обратиться к базе данных, как показано ниже
почтовое сообщение.To. Add(New MailAddress (recepientEmail)), то он не отправил никакого письма на мой адрес электронной почты, он также не дал никакого исключения , но когда я жестко закодировал его, как
почтовое сообщение.To. Add("d.habib@plan-international.org") он отправляет электронную почту на этот адрес, почему это так?

Что я уже пробовал:

Я пытался отправить электронное письмо в аккаунт google, например marktabor@gmail.com он отправляет правильно он не отправлял только с этим доменом и когда я использую метод для получения адреса электронной почты то он получает письмо правильно как d.habib@plan-international.org но он не отправил на этот адрес электронной почты, когда я жестко закодировал его, а затем отправил письмо на этот адрес

Richard MacCutchan

Используйте отладчик, чтобы точно увидеть, что строится в MailAddress и MailMessage.

Malikdanish

он правильно получает адрес электронной почты

F-ES Sitecore

Это может быть проблема с юникодом или какие-то забавные символы\пробелы, которые вы не можете сразу увидеть. Как было сказано ниже, у нас нет ваших данных, и мы не можем использовать отладчик в вашем коде, поэтому трудно сказать наверняка. Используйте шестнадцатеричное представление строки в отладчике и сравните шестнадцатеричные значения с жестко закодированной строкой, что позволит вам узнать, действительно ли они одинаковы.

1 Ответов

Рейтинг:
0

OriginalGriff

Мы не можем сказать-проблема, вероятно, не в этом коде, а в коде, который его вызывает.
Поэтому используйте отладчик: поставьте точку останова в первой строке этого субподряда, и когда отладчик попадет в нее, посмотрите точно на то, что вы получили как recepientEmail строка.
Если это не то, что вы ожидали - а я подозреваю, что это не так, - используйте стек вызовов, чтобы заглянуть в свой код и выяснить, почему он такой, какой есть.
Но мы не можем сделать ничего из этого для вас - у нас нет остальной части вашего кода, поэтому мы не можем его запустить, и это все равно не поможет, поскольку у нас нет ваших данных, чтобы предоставить нам те же значения!


Malikdanish

способ в кнопку нажать
1-SendMAilMessage()
2-Private Sub SendMAilMessage()
Тусклое тело, как струна = меня.PopulateBody("Уважаемый Пользователь", _
"Система мониторинга и оценки, основанная на результатах, от Plan PAKISTAN", _
"http://www.planrbme.com.pk" и усилитель; _
"", _
("мы очень рады сообщить вам, что запрошенное вами достижение целевых показателей было одобрено руководителем.; _
"Предлагаемые комментарии :  {" &амп; AcceptComments &ампер; "} .&ЛТ;БР/&ГТ;.&ЛТ;БР/&ГТ; " &амп; _
"< br / & gt;.< br/ & gt;Датированный:"&усилителя; дата и время.Сейчас.Метод toString("гггг/ММ/ДД чч:мм:СС ")))
Me. SendHtmlFormattedEmail (GetUserIDEmail(ddlusers.SelectedValue), "Record Accepted", body)
Конец Подводной Лодки
3 - частная суб SendHtmlFormattedEmail(recepientEmail бывал, как струна, бывал теме, как струна, тело как byval в качестве строки)



Дим MailMessage в виде системы.Нет.Почте.Получить Помощь = Новая Система.Нет.Почте.Получить помощь
Попробуй
почтовое сообщение.От = Новый Адрес Электронной Почты(Диспетчер Конфигураций.AppSettings ("Имя Пользователя"))
'mailMessage.CC. Add("danish.habib@plan-international.org")
mailMessage.Bcc. Add("spober_woh@yahoo.com")
почтовое сообщение.Субъект = субъект
почтовое сообщение.Тело = тело
почтовое сообщение.IsBodyHtml = True
почтовое сообщение.To. Add(новый почтовый адрес (recepientEmail))
Дим файлов в список(из HttpPostedFile) = DirectCast(кэш(мне.Ключ), Список(HttpPostedFile))
Для каждого файла как HttpPostedFile в файлах
почтовое сообщение.Вложения.Добавить (новое вложение (файл.Ридера, Путь.GetFileName(файл.FileName), файл.Значение contentType))
Следующий
почтовое сообщение.From = новый почтовый адрес("omer@planrbme.com.pk")

Dim smtp как новый SmtpClient()
протокол SMTP.Хост = " 202.165.228.15"
протокол SMTP.EnableSsl = Ложь
протокол SMTP.Учетные Данные = Новый Система.Нет.А networkcredential("omer@planrbme.com.pk", "Pakistan_123")
протокол SMTP.Порт = 25
smtp. Send(mailMessage)

Поймать ex как исключение
например, сообщение.Метод toString()
Конец Попытки



Конец Подводной Лодки
Частная Функция GetUserIDEmail(ByVal UserId As Integer) в виде строк
Dim UserType As String = Nothing
Dim cnnResource As New SqlConnection(AppSettings ("DbSqlPortal"))
Dim cmdResource As New SqlCommand ("GetEmailAddressForDropdownFromPartner", cnnResource)
Дим drResource как объект sqldatareader = ничего

cmdResource.CommandType = CommandType.Хранимая процедура
cmdResource.Параметры.Добавить("@Имя Пользователя", Значения Sqldbtype.Тип nvarchar).Значение = ddlusers.SelectedValue
Попробуй
cnnResource.Открыть()
drResource = cmdResource.ExecuteReader(CommandBehavior.SingleRow)
Если drResource - это не Ничто, а также drResource.Затем Прочитайте ()
UserType = drResource ("электронная почта")
Ещё
Throw New Exception ("запись не может быть найдена/прочитана.")
Конец, Если
Поймать ex как исключение
например, сообщение.Метод toString()
Окончательно

Конец Попытки
ХДМ.Значение = Файл Usertype
Вернуться Пользовательского



Конечная Функция

OriginalGriff

Используйте отладчик!
Как я уже сказал:"... это все равно не поможет, так как у нас нет ваших данных, чтобы предоставить нам те же самые значения!"

Malikdanish

это была проблема с почтовым сервером, который блокировал IP, спасибо вам всем за поддержку OriginalGriff большое спасибо вам тоже, чтобы поставить меня на отладку до тех пор, пока проблема не будет решена.:) спасибо за хорошую практику

OriginalGriff

Пожалуйста!
Рад, что вы все уладили. :большой палец вверх: