Хотя я думаю, что ответ Басарата - это современный способ решения этой проблемы, приведенный ниже код - это то, как я это сделал. Таким образом, мне нужна только одна строка кода для построения счетчика и только одна строка кода, чтобы показать / скрыть его.
<Spinner.Render /> {/* Build spinner component */}
Spinner.show(); //Show spinner.
namespace Spinner {
'use strict';
export let show: any; //Ref to showIt method.
export let hide: any; //Ref to hideIt method.
export function Render() {
const [visible, setVisible] = React.useState(false); //Set refresh method.
function showIt() {
setVisible(true); //Show spinner.
}
function hideIt() {
setVisible(false); //Hide spinner.
}
const showRef: any = React.useRef(showIt);
const hideRef: any = React.useRef(hideIt);
//Component did mount.
React.useEffect(() => {
Spinner.show = showRef.current;
Spinner.hide = hideRef.current;
}, []);
const styles: any = createStyles({
row1Container: { display: 'flex', alignItems: 'center', justifyContent: 'center' },
});
return (
<div>
{visible && <div style={styles.row1Container}>
<CircularProgress
color='secondary'
size={30}
thickness={3.6}
/>
</div>}
</div>
); //end return.
} //end function.
} //end module.
Нет необходимости жестко кодировать все настройки smtp в вашем коде. Поместите их в web.config. Таким образом, при необходимости вы можете зашифровать эти параметры и изменить их на лету, не перекомпилируя приложение.
<configuration>
<system.net>
<mailSettings>
<smtp from="example@domain.com" deliveryMethod="Network">
<network host="smtp.gmail.com" port="587"
userName="example@domain.com" password="password"/>
</smtp>
</mailSettings>
</system.net>
</configuration>
Конец, когда вы отправляете электронную почту, просто включите SSL на вашем SmtpClient:
var message = new MailMessage("navin@php.net");
// here is an important part:
message.From = new MailAddress("example@domain.com", "Mailer");
// it's superfluous part here since from address is defined in .config file
// in my example. But since you don't use .config file, you will need it.
var client = new SmtpClient();
client.EnableSsl = true;
client.Send(message);
Убедитесь, что вы отправляете электронную почту с того же адреса электронной почты. адрес, по которому вы пытаетесь пройти аутентификацию в Gmail.
Примечание : Начиная с .NET 4.0, вы можете вставить enableSsl = "true" в web.config, а не устанавливать его в коде.