есть mail.exampleserver.com существует ??? , если не попробовать следующий код (у вас должна быть учетная запись gmail)
$mail->SMTPSecure = "ssl";
$mail->Host='smtp.gmail.com';
$mail->Port='465';
$mail->Username = 'you@gmail.com'; // SMTP account username
$mail->Password = 'your gmail password';
$mail->SMTPKeepAlive = true;
$mail->Mailer = "smtp";
$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->CharSet = 'utf-8';
$mail->SMTPDebug = 0;
Можно использовать:
System.getProperty("os.name")
P.S. Можно найти этот код полезным:
class ShowProperties {
public static void main(String[] args) {
System.getProperties().list(System.out);
}
}
Все, что это делает, распечатывают все свойства, обеспеченные Вашими реализациями Java. Это даст Вам общее представление о том, что можно узнать о среде Java через свойства.:-)
Если Вы интересуетесь тем, как проект с открытым исходным кодом действительно наполняет как это, можно проверить Терракотовый класс (Os.java), который обрабатывает этот спам здесь:
И Вы видите подобный класс для обработки версий JVM (Vm.java и VmVersion.java) здесь:
Октябрь 2008:
я рекомендовал бы кэшировать его в статической переменной:
public static final class OsUtils
{
private static String OS = null;
public static String getOsName()
{
if(OS == null) { OS = System.getProperty("os.name"); }
return OS;
}
public static boolean isWindows()
{
return getOsName().startsWith("Windows");
}
public static boolean isUnix() // and so on
}
Тот путь, каждый раз, когда Вы просите OS, Вы не выбираете свойство несколько раз во время жизни Вашего приложения.
<час>февраль 2016: 7 + несколько лет спустя:
существует ошибка с Windows 10 (который не существовал во время исходного ответа).
См." “os.name” Java для Windows 10? "
Все вышеупомянутые ответы подвержены фатальному дефекту в рамках дизайна System#getProperty
подпрограмма!
Никогда не доверяют os.name
, os.version
, и os.arch
свойства. Эти свойства на самом деле не только для чтения , поскольку можно было бы ожидать — вместо этого, взломщик может легко ввести литерал произвольной строки в них!
, Например, на моем машина Windows 10 следующая часть кода на самом деле распечатала бы строковый литерал "Linux" при выполнении этих шагов:
public static void main(String[] args)
{
System.out.println(System.getProperty("os.name");
}
Теперь, после упаковки class
в исполняемый файл JAR
, мы можем на самом деле идти вперед и выполнить его как показанный внизу.
$ Java - банка PATH.jar-Dos.name = "Linux"
Таким образом, весь ответы выше могли бы рискнуть Вашей программой, думая, что это выполняется на совершенно неправильный ОС . Вы могли бы спросить себя теперь, как можно было бы пойти о решении этого вопроса? Ну, по состоянию на время, будучи, единственный способ исправить этот контроль состоит в том, чтобы вручную проверить параметры JVM во время выполнения.
Вот короткий пример того, как запросить эти свойства программно. Предположим, что Вы добавили бы static
блок инициализации к Вашему основному устройству class
. Затем следующая часть кода препятствовала бы тому, чтобы любой вмешался os.name
свойство внешне.
if (java.util.Arrays.toString(jdk.internal.misc.VM.getRuntimeArguments()).contains("Dos.name"))
{
throw new java.lang.InternalError("Please refrain from tampering with the \"os.name\" property.");
}
jdk.internal.misc.VM
class
не предназначается для [1 113] использование. Поэтому Вы не должны использовать его в производственном коде!
Как указано в других ответах, System.getProperty предоставляет необработанные данные. Однако компонент Apache Commons Lang предоставляет оболочку для java.lang.System с удобными свойствами, такими как SystemUtils.IS_OS_WINDOWS
, очень похожими на вышеупомянутую утилиту ОС Swingx.